昆明java培训
达内昆明广州春城路

18487146383

热门课程

昆明java培训班:java泛型接口

  • 时间:2016-09-22
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明Java培训机构的老师最近整合一个第三方类库,遇到了泛型的问题。

public interface QueryApi<T extends QueryApi<?,?>,U>

public abstract class QueryApiImpl<U> implements QueryApi<QueryApiImpl<?>,U>

public interface TaskQueryApi<T extends OrderFlow> extends QueryApi<TaskQueryApi<?>, T>

public class TaskQueryApiImpl<T extends OrderFlow> extends QueryApiImpl<T> implements TaskQueryApi<T>

以上,编译报错

问题在于public interface TaskQueryApi<T extends OrderFlow> extends QueryApi<TaskQueryApi<?>, T>这句。

修改为

public interface TaskQueryApi<T extends OrderFlow> extends QueryApi<QueryApiImpl<?>, T>后正常。

分析原因:TaskQueryApi实现了QueryApi,其中第一个泛型参数是TaskQueryApi

QueryApiImpl同样实现了QueryApi,其中第一个泛型参数是QueryApiImpl

所以,当TaskQueryApiImpl实现TaskQueryApi,同时集成了QueryApiImpl。这样就有两份向上的泛型参数,但是泛型的实例类型并不相同,导致报错。

当然这里TaskQueryApi也可以不集成QueryApi。这样,实现类里有QueryApi的方法,但是接口定义中就没有了。

了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

上一篇:java培训:java中的字符串相关知识整理
下一篇:Java单例模式实现的几种方式

昆明java培训机构:java未来的发展走向

昆明java培训机构:java学完可以干什么!

昆明java培训机构:如何搞定BAT和华为offer?有这份攻略就够了!

昆明java培训机构:学Java别担心枯燥和无聊

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货