无法在包声明中解析类型java.lang.CharSequence

时间:2014-06-19 08:26:06

标签: java eclipse

我在包P中获得了2个课程。接口类A及其实现类B。 在包含B类的文件中,我收到以下错误:The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files

我正在使用Eclipse Helios和

$ java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)

删除和添加JRE的标准解决方案不起作用。 我该如何解决?

修改 代码:
班级A

package com.jax;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;


@WebService
@SOAPBinding(style = Style.RPC)
public interface WebServiceInter {

@WebMethod
String sayHello();

}

班级B

package com.jax; // **Error is here**

import javax.jws.WebService;

@WebService(endpointInterface = "com.jax.WebServiceInter")
public class WebServiceImpl implements WebServiceInter{
    @Override
    public String sayHello(){
        return "Hello!";
    }
}

项目结构: ProjectName - > Java资源 - > com.jax - >课程A,课程B

5 个答案:

答案 0 :(得分:79)

Java 8支持接口中的default methods。在JDK 8中,许多旧接口现在都有新的默认方法。例如,now in CharSequence we have chars and codePoints methods
如果项目的源级别低于1.8,则编译器不允许您在接口中使用默认方法。所以它不能编译直接间接依赖于这个接口的类 如果我的问题正确,那么你有两个解决方案。第一种解决方案是回滚到JDK 7,然后您将使用旧的CharSequence接口而不使用默认方法。第二种解决方案是将项目的源级别设置为1.8,然后编译器不会抱怨接口中的默认方法。

答案 1 :(得分:1)

" Java 8 支持 Eclipse Kepler SR2 "以及新的" JavaSE-1.8 "执行环境自动出现。

下载此内容: - Eclipse kepler SR2

然后点击此链接: - Eclipse_Java_8_Support_For_Kepler

答案 2 :(得分:0)

让您的Project和Workspace指向将解决问题的JDK7。 https://developers.google.com/eclipse/docs/jdk_compliance已经提供了修改合规性和方面级别更改的方法。

答案 3 :(得分:0)

试着用ant编译, 使用org.eclipse.jdt.core-3.5.2.v_981_R35x.jar时出现相同的错误, 升级到org.eclipse.jdt.core_3.10.2.v20150120-1634.jar后,一切顺利

答案 4 :(得分:0)

您的Eclipse软件套件不支持Java 1.8

Download a newer version of Eclipse.