【发布时间】:2022-01-17 08:37:44
【问题描述】:
我遇到了一个错误,void cannot be dereferenced 在线 System.out.println(setupCars().F123.get(0));。我想要实现的是,一旦系统检测到单词IW1,就会产生输出Volvo。我尝试使用this.setupCars().F123.get(0));,但不幸的是没有运气。
public class SpaceCars {
ArrayList<String> F123 = new ArrayList<String>();
public SpaceCars(String admiral) {
ArrayList<String> F123 = new ArrayList<String>();
F123.add("Volvo");
setupCars();
}
public String getCarInfo(String ref) {
if (ref.equals("IW1")) {
System.out.println(setupCars().F123.get(0));
}
return "\nNo such car";
}
private void setupCars() {
ArrayList<String> F123 = new ArrayList<String>();
F123.add("Volvo");
F123.add("Nissan");
}
【问题讨论】:
-
setupCars() 不返回任何内容;它被声明为 void 方法。因此,您不能用它返回的内容打印(或做任何其他事情)。您希望打印什么?
-
@user16632363
volvo -
我也怀疑你不了解范围。您有两个完全不同的列表,称为 F123。 setupCars 中的那个被创建、填充和忽略。也许您希望 setupCars 将汽车添加到构造函数中创建的列表中。
-
@user16632363 是的,这就是目标