java - 如何在java中为数组内的对象属性设置值

标签 java arrays object setter

我不断收到此错误:

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/

相关文章:

javascript - 将项目添加到数组然后序列化()javascript

c - 对于数组,为什么会出现 a[5] == 5[a] 的情况?

php - 如何比较不同的数组?

javascript - 将 PHP 对象数组转换为 javascript 数组

php - 对象分配与引用

java - java中仅支持IPv6的套接字

java - Android 将字符串转换为日期

java - Jackson JSON如何设置http连接和读取超时

java - 有没有办法将 Gluon Mobile (javafxports) 与 native android 代码混合?

c# - 在构造函数中创建的对象变为空