我不断收到此错误:
Exception in thread "main" java.lang.NullPointerException
at Circle.main(Circle.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
我正在尝试设置第一个圆形对象的属性,但我想我不能用这种方式在java中执行此操作?
public class Circle {
private double x,
y,
radius;
public static void main(String args[]) {
// Testing Circles
System.out.println("\nTESTING CIRCLES:");
Circle[] circles = new Circle[2];
Circle circle1 = circles[0]; // Circle 1
// Setting X
circle1.setX(20); // <- Why does this not work and how is this properly done.
}
public void setX(double xVal) {
x = xVal;
}
}
最佳答案
您还没有初始化您的Circle
对象,只是声明了一个适合保存圆形对象的空数组。声明时,数组中的所有对象均为null
。您需要先初始化数组中的对象,然后才能调用它们的方法。
Circle[] circles = new Circle[2];
circles[0] = new Circle();
circles[0].setX(20);
或者您可以在一行中进行初始化和声明,如下所示:
Circle[] circles = new Circle[] { new Circle(), new Circle() };
circles[0].setX(20);
关于java - 如何在java中为数组内的对象属性设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24666054/