Java、泛型和PEC:仍然难以理解C部分;具体的例子?
我将在此处发布一个链接:。有很多关于PECS范式的帖子,包括。在我自己的个人代码中,我经常使用泛型,但只使用过P部分(即,Java、泛型和PEC:仍然难以理解C部分;具体的例子?,java,generics,pecs,Java,Generics,Pecs,我将在此处发布一个链接:。有很多关于PECS范式的帖子,包括。在我自己的个人代码中,我经常使用泛型,但只使用过P部分(即,) Collections.sort期望将a作为其泛型参数,例如 List myIntegers=Arrays.asList(5,2,3); List myLongs=Arrays.asList(5L、2L、3L); MyNumberComparator MyNumberComparator=新的比较器(){…} Collections.sort(myIntegers,myN
)
Collections.sort
期望将a作为其泛型参数,例如
List myIntegers=Arrays.asList(5,2,3);
List myLongs=Arrays.asList(5L、2L、3L);
MyNumberComparator MyNumberComparator=新的比较器(){…}
Collections.sort(myIntegers,myNumberComparator);//数字是整数的“超级”类
Collections.sort(myLongs,myNumberComparator);//数字是“超级”类的长
因此,这里的“super”允许将MyNumberComparator用于整数排序和长排序
List<Interger> myIntegers = Arrays.asList(5, 2, 3);
List<Long> myLongs = Arrays.asList(5L, 2L, 3L);
MyNumberComparator myNumberComparator = new Comparator<Number>(){...}
Collections.sort(myIntegers, myNumberComparator ); // Number is "super" class of Integer
Collections.sort(myLongs , myNumberComparator ); // Number is "super" class of Long
List myIntegers=Arrays.asList(5,2,3);
List myLongs=Arrays.asList(5L、2L、3L);
MyNumberComparator MyNumberComparator=新的比较器(){…}
Collections.sort(myIntegers,myNumberComparator);//数字是整数的“超级”类
Collections.sort(myLongs,myNumberComparator);//数字是“超级”类的长
因此,此处的“super”允许将MyNumberComparator重新用于整数排序和长排序。尝试创建数字列表:
List<Number> list = new ArrayList<Number>(Arrays.asList(2, 3.14, 5, 0, 42, 2.5));
查看泛型参数尝试创建一个数字列表:
List<Number> list = new ArrayList<Number>(Arrays.asList(2, 3.14, 5, 0, 42, 2.5));
查看泛型参数
我看不出超级明星在哪里。你有没有
为什么这是必要的具体例子
假设您有一个类Animal
,它与所有Animal
s相当:
public class Animal implements Comparable<Animal>
现在的问题是,Dog
能与另一只Dog
相比吗?答案当然是肯定的。一只狗
,作为动物
,可与所有动物
s相媲美,包括狗
s(以及猫
s)
但是,Dog
没有实现Comparable
,因此绑定的T扩展Comparable
对T=Dog
不起作用
但对于排序,我们关心的是类型可以与自身进行比较(狗可以做到这一点)。因此,合适的最小限制界是T
我看不出超级明星在哪里。你有没有
为什么这是必要的具体例子
假设您有一个类Animal
,它与所有Animal
s相当:
public class Animal implements Comparable<Animal>
现在的问题是,Dog
能与另一只Dog
相比吗?答案当然是肯定的。一只狗
,作为动物
,可与所有动物
s相媲美,包括狗
s(以及猫
s)
但是,Dog
没有实现Comparable
,因此绑定的T扩展Comparable
对T=Dog
不起作用
但对于排序,我们关心的是类型可以与自身进行比较(狗可以做到这一点)。因此,合适的最小限制范围是T,可以看看这个,我知道所有这些。我一点也不聪明。我以前读过所有这些链接,但没有掌握真正的需要。浏览一下网站。这是AFAIK,关于Java泛型的最好的资源。@RohitJain我也知道这个网站,我已经阅读了很多次FAQ。兰格夫人是我知道的一个名字。也许你可以看看这个——我知道所有这些。我一点也不聪明。我以前读过所有这些链接,但没有掌握真正的需要。浏览一下网站。这是AFAIK,关于Java泛型的最好的资源。@RohitJain我也知道这个网站,我已经阅读了很多次FAQ。兰格夫人是我知道的一个名字。现在我们正在交谈/开始交谈!这确实是一个很好的例子!我会再读一遍,找到它的更多用途,但您的示例至少清楚地表达了对super
的需求。谢谢现在我们在说话/开始说话!这确实是一个很好的例子!我会再读一遍,找到它的更多用途,但您的示例至少清楚地表达了对super
的需求。谢谢你是法国人,不是吗我也是。你的‘或’应该是‘然而’;)你是法国人,不是吗我也是。你的‘或’应该是‘然而’;)