比较器无法解析为类型,我该怎么办

时间:2019-07-12 06:52:47

标签: java

我想使用内置的compare函数根据特定方法对字符串进行排序,但是发生了错误。我应该使用Comparator

VsCode openjdk版本“ 1.8.0_191-1-redhat” OpenJDK运行时环境(内部版本1.8.0_191-1-redhat-b12) OpenJDK 64位服务器VM(内部版本25.191-b12,混合模式)

public String[] reorderLogFiles(String[] logs){

    Comparator<String> myComp = new Comparator<String>(){
        //@Override
        public int compare(String s1, String s2){
            int s1si = s1.indexOf(' ');
            int s2si = s2.indexOf(' ');
            char s1fc = s1.charAt(s1si+1);
            char s2fc = s2.charAt(s2si+1);
            if(s1fc<='9'){
                if(s2fc<='9')return 0;
                else return 1;
            }
            if(s2fc<='9')return -1;

            int isNeedChange = s1.substring(s1si+1).compareTo(s2.substring(s2si+1));
            if(isNeedChange == 0)return s1.substring(0,s1si).compareTo(s2.substring(0,s2si));
            return isNeedChange;
        }
    };

    Arrays.sort(logs,myComp);
    return logs;
}

比较器无法解析为类型

2 个答案:

答案 0 :(得分:0)

您是否导入了比较器API?

如果没有,您的项目是否在构建路径上?也许您必须通过将src设置为源文件夹来配置构建路径,以便VsCode提示您导入Comparator。

答案 1 :(得分:0)

两个可能的修复程序:

1。导入比较器库

将此添加到文件顶部:

import java.util.Comparator;

2。错误的Java路径

VS Code可能正在查看jre而不是JDK。

如何修复:

  1. 点击ctrl + shift + p以显示命令面板。
  2. 键入>Java: Configure Java Runtime并点击enter
  3. 更改路径以指向您的JDK位置。默认位置为C:\Program Files\Java\jdkX.X.X_XXX

VS Code Java configuration