数组为空,因此无法调用“”

时间:2020-10-20 20:45:02

标签: java arrays intellij-idea arraylist

我需要添加有关2个演员的信息,例如他们的姓名,地址和年龄,并且这样做很容易,没有数组,但是有必要,我不断收到错误消息

“无法调用“ TestActor.setName(String)”,因为“ actors [0]”为空 在TestMain.main(TestMain.java:5)“

这只是我用来测试的测试主体 '''

library(rdrobust)

rdplot(y = dt$treated, x = dt$score)

这是我正在使用的演员类,我需要从中设置信息

nbins

我知道toString暂时不做任何设置。这可能有点混乱,我可能走错了路。使用数组我可以相对容易地做到这一点,但是它们有点让我难过,而且我不确定百分百地坚持要前进的方向。

3 个答案:

答案 0 :(得分:1)

编译器在抱怨,因为您没有正确初始化TestActor对象。您应该这样做:

actor[0] = new TestActor("Jack Nicholson", "Miami.", 74);
actor[0].printAct();

如果您不想执行此操作并手动使用设置器,则需要在TestActor中定义一个默认构造函数:

public TestActor() {  }

那么您应该可以像这样在数组中使用它:

actor[0] = new TestActor();
actor[0].setName("Jack Nicholson");
actor[0].setAddress("Miami.");
actor[0].setAge(74);
actor[0].printAct();

答案 1 :(得分:0)

创建TestActor[] actor = new TestActor[2];时,正在创建引用类型对象的数组。因此,actor[0]actor[1]都引用null。首先创建TestActor并将对象分配给数组。喜欢:

TestActor actorOne = new TestActor("s", "g", 0);
actor[0] = actorOne;

OR

TestActor[] actor = new TestActor[2];
actor[0]= new TestActor ("Jack Nicholson", Miami.", 74);
actor[0].printAct();

答案 2 :(得分:0)

似乎您的问题是将Actor初始化为空字符串而不是TestActor对象:

actor [0] =(“”);

相反,请尝试:

actor [0] = new TestActor(“ Jack Nicholson”,“ Miami。”,74);

每个TestActor都需要实例化,这样才能实例化TestActors并填充所需的字段。