包声明中无法解析类型java.lang.CharSequence
我在package中有2节课P
。接口类A
及其实现类B
。在具有类的文件中,B
出现以下错误:The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
。
我正在使用Eclipse Helios和
$ java -versionjava 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的标准解决方案不起作用。我该如何解决?
编辑: 代码:
ClassA
:
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();
}
ClassB
:
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-> Class A
,ClassB
回答:
Java 8支持接口中的默认方法。在JDK 8中,许多旧接口现在具有新的默认方法。例如,现在在CharSequence中,我们有chars和codePoints方法。
如果项目的源级别低于1.8,则编译器不允许你在接口中使用默认方法。因此,它无法编译直接依赖于此接口的类。
如果我的问题正确,那么你有两种解决方案。第一个解决方案是回滚到JDK 7,然后你将使用旧的CharSequence接口,而没有默认方法。第二种解决方案是将项目的源级别设置为1.8,这样编译器将不会抱怨接口中的默认方法。
以上是 包声明中无法解析类型java.lang.CharSequence 的全部内容, 来源链接: utcz.com/qa/428654.html