无法在Comparator <String>中使用静态List <String>

Ale*_*ien 4 java generics comparator

为什么我必须完全限定静态字段List中的java.lang.String

public static class MyComparator<String> implements Comparator<String> {

        public static List sortOrder;
        public static List<Integer> sortOrder2;
        public static List<java.lang.String> sortOrder3; // works!
        public static List<String> sortOrder4; // <-Compiler error only in this line


        @Override
        public int compare(String s1, String s2) {

            // TODO

            return -1;
        }
    }
Run Code Online (Sandbox Code Playgroud)

错误是"无法对非静态类型字符串进行静态引用"

rge*_*man 13

您已经定义了一个String与该类名称相同的泛型类型参数,因此请String参考您的参数,同时java.lang.String仍然有效.

从班级中删除它,但请将其保留在该implements子句中.

public static class MyComparator implements Comparator<String> {
Run Code Online (Sandbox Code Playgroud)