开发者社区 问答 正文

java 泛型继承的问题,有高手可以给我个答案吗?? 400 报错

java 泛型继承的问题,有高手可以给我个答案吗?? 400 报错

public abstract class BaseEntity<T> implements Serializable {

...

}

public abstract class DataEntity<T> extends BaseEntity<T>{

...

}


public class User extends DataEntity<User>{

...

}

public class Scholar extends User {

...

}


public abstract class CrudService<D extends CrudDao<T>, T extends DataEntity<T>> extends BaseService{

...

}

public class ScholarService extends CrudService<ScholarDao, Scholar>{ //这个地方编译出错

...

}

错误信息:Multiple markers at this line
- Bound mismatch: The type Scholar is not a valid substitute for the bounded parameter <T extends DataEntity<T>> of the type 
CrudService<D,T>


展开
收起
爱吃鱼的程序员 2020-06-03 15:09:44 408 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    看着你定义这个,真纠结,######怎么了?######Scholar不符合CrudDao<T>, T extends DataEntity<T>> 


    这样可以么?
    public class CrudService<D extends CrudDao<T>, T extends DataEntity<?>>
    ######不能改变基类CrudService######那这么改你能接受么?
    public class ScholarDao extends CrudDao<User> {
    public class ScholarService extends CrudService<ScholarDao, User> {
    或者干脆这样吧
    public class Scholar extends DataEntity<Scholar>


    ######public class Scholar extends DataEntity<Scholar> 这个本来就应该这样,但我的Scholar是要求继承User的

    2020-06-03 16:48:02
    赞同 展开评论