Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.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通用方法)_Java_Wildcard_Generic Method - Fatal编程技术网

这段代码为什么要编译?(java通用方法)

这段代码为什么要编译?(java通用方法),java,wildcard,generic-method,Java,Wildcard,Generic Method,以下代码: import java.util.*; public final class JavaTest { public static <T extends Comparable<? super T>> int max(List<? extends T> list, int begin, int end) { return 5; } public static void main(String[] args) {

以下代码:

import java.util.*;

public final class JavaTest {
    public static <T extends Comparable<? super T>> int max(List<? extends T> list, int begin, int end) {
        return 5;
    }

    public static void main(String[] args) {
        List<scruby<Integer>> List = new ArrayList<>();
        JavaTest.<scruby>max(List, 0, 0); //how does this compile?, scruby doesn't meet
        //T extends Comparable<? super T>
    }
}

class scruby<T> implements Comparable<String>{
    public int compareTo(String o) {
        return 0;
    }
}
import java.util.*;
公共期末考试{
公共静电
或者让Java来推断:

JavaTest.max(List, 0, 0);

看不出有人投票否决这个问题有什么意义吗?至少对我来说,这似乎是一个合法的问题。不,它不扩展
String
它扩展
Integer
,因为
List List List=new arrarylist();
然后它没有使用您的
implements compariable
方法,它使用的是从
Integer继承的方法,对不起,我的意思是它实现compariable,string不是scruby的super。它是如何从Integer继承任何东西的?哦,因为它是原始类型,所以它只是不检查?O.O很有趣,谢谢您的帮助lp!是的。基本上,只要引入原始类型,与之相关的所有泛型类型检查都将被抑制,除了警告,检查将降级到运行时,就像在泛型出现之前的日子一样。请记住,Java希望原始类型的使用仅限于旧的遗留代码。
JavaTest.<scruby>max(List, 0, 0);
JavaTest.<scruby<Integer>>max(List, 0, 0);
JavaTest.max(List, 0, 0);