如何初始化数组对象
How to initialize an array object
为什么我在运行时遇到错误:
Exception in thread "main" java.lang.NullPointerException at arrayTest.main(arrayTest.java:5)
源码如下:
public class arrayTest{
int b;
public static void main(String[] args){
arrayTest[] a= new arrayTest[2];
a[0].b=10;
System.out.println(a[0].b);
}
}
谢谢
苏尼尔
您尚未向阵列添加任何 arrayTest
个实例。您只初始化了数组,所以 arrayTest[0]
是 null
。将对象添加到数组:
arrayTest[0] = new arrayTest();
arrayTest[1] = new arrayTest();
在进行面向对象编程 (OOP) 时,您需要换个角度思考。
这里您正在做的是从 class arrayTest 创建一个新的对象 arrayTest。
这个对象需要一个构造函数和属性字段,以便可以很好地定义它,例如:一个人的大小、年龄或眼睛颜色。
您希望您的对象是什么?
例如,我想做一个相同类型的 n
对象的 ArrayList :
首先,我的字段将成为一个 ArrayList,因为这是我想要创建的。
我有以下 class :
import java.lang.reflect.Type;
import java.util.ArrayList;
class arrayTestType {
private final ArrayList arrayTest;
}
我的构造函数 return 应该做什么?
嗯,有 n 个元素的 Type 类型的数组是 ArrayList<Type>(n)
所以我的构造函数应该这样写:
public arrayTestType(Type type, int length) {
arrayTest = new ArrayList<Type>(length);
}
最后我们的 class 是:
import java.lang.reflect.Type;
import java.util.ArrayList;
class arrayTestType {
private final ArrayList arrayTest;
public arrayTestType(Type type, int length){
arrayTest = new ArrayList<Type>(length);
}
}
现在我们要打电话的时候:
arrayTestType stringArrayOfLength5 = new arrayTestType<String>(5);
我们将得到一个明确定义的对象。
现在您需要添加一些东西以使其不为空,因此为空指针!
祝你好运!
为什么我在运行时遇到错误:
Exception in thread "main" java.lang.NullPointerException at arrayTest.main(arrayTest.java:5)
源码如下:
public class arrayTest{
int b;
public static void main(String[] args){
arrayTest[] a= new arrayTest[2];
a[0].b=10;
System.out.println(a[0].b);
}
}
谢谢 苏尼尔
您尚未向阵列添加任何 arrayTest
个实例。您只初始化了数组,所以 arrayTest[0]
是 null
。将对象添加到数组:
arrayTest[0] = new arrayTest();
arrayTest[1] = new arrayTest();
在进行面向对象编程 (OOP) 时,您需要换个角度思考。
这里您正在做的是从 class arrayTest 创建一个新的对象 arrayTest。
这个对象需要一个构造函数和属性字段,以便可以很好地定义它,例如:一个人的大小、年龄或眼睛颜色。
您希望您的对象是什么?
例如,我想做一个相同类型的 n
对象的 ArrayList :
首先,我的字段将成为一个 ArrayList,因为这是我想要创建的。
我有以下 class :
import java.lang.reflect.Type;
import java.util.ArrayList;
class arrayTestType {
private final ArrayList arrayTest;
}
我的构造函数 return 应该做什么?
嗯,有 n 个元素的 Type 类型的数组是 ArrayList<Type>(n)
所以我的构造函数应该这样写:
public arrayTestType(Type type, int length) {
arrayTest = new ArrayList<Type>(length);
}
最后我们的 class 是:
import java.lang.reflect.Type;
import java.util.ArrayList;
class arrayTestType {
private final ArrayList arrayTest;
public arrayTestType(Type type, int length){
arrayTest = new ArrayList<Type>(length);
}
}
现在我们要打电话的时候:
arrayTestType stringArrayOfLength5 = new arrayTestType<String>(5);
我们将得到一个明确定义的对象。 现在您需要添加一些东西以使其不为空,因此为空指针! 祝你好运!