子类中的Java设置变量

时间:2018-08-15 14:56:02

标签: java maven class

我有一个Java项目(简称为Project A),该项目由一个类及其子类组成。我将此项目打包到一个.jar文件中,该文件作为Maven依赖关系包含在另一个项目中(我们称其为Project B)。

我在Project A中的子类包含一个变量,如下所示:

int foo = null;

我想在Project B中执行以下操作:

Subclass.foo = 3;

但是,每当我尝试执行此操作时,Java都会不断向我抛出java.lang.ExceptionInInitializerError,它说这是由空指针错误引起的。

尽管我将此变量移至Project A中的基类的那一刻,它就起作用了。我能够在Project B中设置foo的值。

我不知道为什么这样做有效,了解Java的人愿意向我解释吗?

1 个答案:

答案 0 :(得分:-1)

那是因为foo上没有静态变量Subclass。您只能将静态变量与此类名称一起使用。要使用非静态变量,您必须使用new关键字实例化该类。

尝试以下操作之一:

选项1:

第1类:

public static int foo = null;

第2类:

Subclass foo = 3;

选项2:

第1类:

public int foo = null;

第2类:

Subclass subclass = new Subclass();
subclass.foo = 3;

此外,请注意,我添加了public修饰符。默认情况下,该变量仅对同一软件包中的其他用户可用。鉴于您有两个不同的项目,我认为情况并非如此。


编辑:

有人(Lino)在评论中提醒我int不能为null。将int替换为Integer,或将null替换为0