素者素心 2019-08-23 16:20 采纳率: 50%
浏览 230

请教一个关于泛型的问题

我有三个实体:

第一个

public class TransEntity<T extends DataEntity<?>>  {}  

第二个

public class Entity1 extends DataEntity<Entity1> {}

第三个

public class Entity2 extends DataEntity<Entity2> {}

然后我写一下代码,编辑就报错了。

public <T extends DataEntity<?>> void test() {
    List<TransEntity<T>> transEntityList = ListUtils.newArrayList();
    TransEntity<Entity1> transEntity1 = new TransEntity<>();
    TransEntity<Entity2> transEntity2 = new TransEntity<>();
    /*这两行代码会报错,传入参数类型不对*/
    //期望的参数是TransEntity<T>,但是传入的是TransEntity<Entity1>
    transEntityList.add(transEntity1);
    transEntityList.add(transEntity2);
    /***************************************/
}

请教大家这是什么情况呢,我有业务逻辑需要类似的写法,应该是我对泛型还不了解吧。

  • 写回答

2条回答 默认 最新

  • tkzc_shark 2019-08-23 16:32
    关注

    不用这么繁琐,定义直接用

    public class TransEntity<T>
    public class Entity1 extends DataEntity<Entity1>
    
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!