Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java、泛型和PEC:仍然难以理解C部分;具体的例子?_Java_Generics_Pecs - Fatal编程技术网

Java、泛型和PEC:仍然难以理解C部分;具体的例子?

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

我将在此处发布一个链接:。有很多关于PECS范式的帖子,包括。在我自己的个人代码中,我经常使用泛型,但只使用过P部分(即,

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
的需求。谢谢你是法国人,不是吗我也是。你的‘或’应该是‘然而’;)你是法国人,不是吗我也是。你的‘或’应该是‘然而’;)