加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java Generics – 插入内部类型参数

发布时间:2020-12-15 04:15:46 所属栏目:Java 来源:网络整理
导读:我是 java的新手.我只是想传递Comparable String进入泛型类型的方法参数 E extends Comparable E .我相信 E的含义扩展了Comparable E是任何扩展Comparable的对象.请告诉我如何传递Comparable String或任何扩展Comparable String的对象并且还有另一个对象. 编
我是 java的新手.我只是想传递Comparable< String>进入泛型类型的方法参数< E extends Comparable< E>> .我相信< E的含义扩展了Comparable< E>>是任何扩展Comparable的对象.请告诉我如何传递Comparable< String>或任何扩展Comparable< String>的对象并且还有另一个对象.

编译器给我错误推断类型比较< String>不是有界参数的有效替代< E extends Comparable< E>>

码:

public class Compare<T> implements Comparable<T>{

    public int compareTo(T o) {

        return 0; // Not worried about logic

    }

}

class CompareTest{

    public <E extends Comparable<E>>void testGeneric(E e){

        System.out.println("Executed");
    }

    public static void main(String args[]){
        Compare<String> compare = new Compare<String>();

        CompareTest test = new CompareTest();
        test.testGeneric(compare);
        //The inferred type Compare<String> is not a valid substitute for the bounded
        //parameter <E extends Comparable<E>>
    }
}

解决方法

E扩展了可比较的< E>表示:类型E能够与相同类型的其他对象进行比较E.

但您的比较类型不符合条件.它无法与另一个比较比较.比较< T>只能将自身与T进行比较,而不是比较< T>,因为它被声明为

public class Compare<T> implements Comparable<T>

使用此比较类型很难理解您想要实现的目标.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读