昆明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自学还是达内培训机构好?

0基础学java垃圾代码回收站【达内编程培训】

选择城市和中心
贵州省

广西省

海南省

台湾