Eclipse错误:无法解析java.lang.CharSequence

Eclipse错误:无法解析java.lang.CharSequence,java,eclipse,Java,Eclipse,我试图在Eclipse中编译简单代码时出错。我正在使用jre8 例如,当我尝试编译此代码时: import java.util.ArrayList; import java.util.Collections; import java.util.List; public class MyProject { public static void main (String args[]) { List<String> myList = new ArrayL

我试图在Eclipse中编译简单代码时出错。我正在使用jre8

例如,当我尝试编译此代码时:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class MyProject {
    public static void main (String args[])
    {
        List<String> myList = new ArrayList<String>();

        myList.add("test");
        myList.add("test2");

        Collections.sort(myList);
    }
}
我已经打开了eclipse构建路径,删除了JRE系统库[jre8],并再次添加了它。但是没用!我能做什么?谢谢

注:在
Collections.sort(myList)中行eclipse显示此错误:

无法解析java.lang.CharSequence类型。它直接从必需的.class文件引用。

确保您的Eclipse IDE支持Java 8: 支持Java8的第一个Eclipse版本是EclipseKeplerSR2(4.3.2)及其附加补丁。(请参阅:,以及需要安装的相应市场项目:)

依我看,你应该去看电影

对于Luna SR2(4.4.2),不需要额外的补丁


确保1.8 JRE在您的工作区中可用: Windows>首选项:Java>已安装的JRE

如果不是这样,您可以使用add按钮添加新的JRE


确保项目的JRE系统库
JavaSE-1.8
在Package Explorer中,您应该看到Java版本:


如果这不正确,您应该打开上下文菜单JRE系统库
项并选择
属性
菜单项

在项目中有一个
.classpath
文件(如果看不到该文件,请使用
导航器视图
),该文件应如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
    <classpathentry kind="output" path="bin"/>
</classpath>


重建项目 项目菜单>清理

从列表中选择项目或“清除所有项目”和“立即启动生成”


另见:

  • @mkrakhin在其回答中的解释:

这是因为coomy.JastAddJ中的BytecodeParser类不支持更高版本的java类文件格式。常量池类型的CONSTANT\u MethodHandle、CONSTANT\u MethodType和CONSTANT\u InvokedDynamic丢失。下面是我解决此问题的解决方案:

(1) 添加int coomy.JastAddJ.BytecodeParser类型:

private static final int CONSTANT_MethodHandle=15;
private static final int CONSTANT_MethodType=16;
private static final int CONSTANT_InvokeDynamic=18;
(2) 添加3个类以支持解析:

在coomy.JastAddJ.BytecodeParser的方法
parseEntry
中,添加

常量方法句柄信息, 常量方法类型信息, 常量调用动态信息

在开关盒块中


现在,Soatom可以成功运行了。

您使用的是什么JDK?jdk1.8.0_05(直接从文件夹中)您尝试过创建新的工作区吗?您的Eclipse版本是什么?这是一个老问题,但我会把你的答案标记为正确答案,以帮助其他人。无论如何谢谢,我也有同样的问题。但是我的eclipse使用的是jre1.8.0.45。但是我仍然面临“StringBuilder”或“StringBuffer”类的问题。“您应该打开JRE系统库项的上下文菜单,然后选择属性菜单项“我该怎么做?这些开关盒应该做什么?”?您能帮助我吗?要解析java类文件中的常量池,您可以学习java类文件的详细格式。
private static final int CONSTANT_MethodHandle=15;
private static final int CONSTANT_MethodType=16;
private static final int CONSTANT_InvokeDynamic=18;