在eclipse中构建错误

时间:2011-08-16 08:24:18

标签: java eclipse

我是Eclipse和Java的新手。

我想知道以下是Eclipses编译器或我的安装中的错误。

我在公共类中定义了一个公共类来定义服务方法的返回类型。

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。

1 个答案:

答案 0 :(得分:4)

通过使ReturnType成为public static class,您将摆脱对父实例和

的引用
ReturnType returnType = new ReturnType(...);

将按预期工作。

如果没有static修饰符,则子类的实例包含对其父对象的隐式引用。这就是为什么在这种情况下需要ServiceThing实例来创建ReturnType实例的原因。