我是 Eclipse 和 Java 的新手。
我想知道以下是 Eclipse 编译器或我安装的错误。
我在公共(public)类中定义了一个公共(public)类来定义服务方法的返回类型。
public class ServiceThing {
public class ReturnType {...}
public ReturnType serviceMethod (...) {...}
...
}
在我调用服务方法的类中,我实例化了一个 ReturnType 来保存默认消息:
ReturnType returnType = new ReturnType(...);
当尝试构建它时,出现以下错误:
构建工作区: 构建期间发生错误。 在项目“XXXX.android”上运行生成器“Java Builder”时出错。 java.lang.ArrayIndexOutOfBoundsException
异常保存失败: 保存失败; java.lang.NullPointerException
我发现所需的语法是:
ServiceThing serviceThing = ...;
ReturnType returnType = serviceThing.new ReturnType(...);
但是编译器无论如何都不应该生成 nullpointerException。
最佳答案
通过将 ReturnType
设为 public static class
,您将摆脱对父实例和您的实例的引用
ReturnType returnType = new ReturnType(...);
将按您预期的方式工作。
如果没有 static
修饰符,子类的实例包含对其父对象的隐式引用。这就是为什么在这种情况下您需要 ServiceThing
实例来创建 ReturnType
实例的原因。
关于java - 在eclipse中构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7075431/