Java 数组初始化产生空指针异常
我最近在学习Java,并尝试使用类。但我不能初始化数组对象Java 数组初始化产生空指针异常,java,Java,我最近在学习Java,并尝试使用类。但我不能初始化数组对象 class Tablet { String S = null; void set(String a) { S = a; } } public class questions { public static void main(String args[]) { Tablet[] T = new Tablet[6]; for(int i = 0;i<6;i++)
class Tablet
{
String S = null;
void set(String a)
{
S = a;
}
}
public class questions
{
public static void main(String args[])
{
Tablet[] T = new Tablet[6];
for(int i = 0;i<6;i++)
{
T[i].set("111"); // I get null pointer exception here
}
//solution(T,6);
}
}
类平板电脑
{
字符串S=null;
无效集(字符串a)
{
S=a;
}
}
公开课问题
{
公共静态void main(字符串参数[])
{
片剂[]T=新片剂[6];
对于(int i=0;i您创建了一个数组(多个Tablet
对象的持有者),但实际上您没有创建任何Tablet
s进入其中。现在,t
(实际上应该是小写;t
看起来既像常量又像类型参数)包含以下内容:
T: {null, null, null, null, null, null}
您需要创建新平板电脑
s并将其放入阵列中,可能如下所示:
for(int i = 0; i < array.length /* don't hardcode the size twice */; i++) {
array[i] = new Tablet();
array[i].set("111");
}
for(int i=0;i
您创建了一个数组(多个平板电脑
对象的一个支架),但实际上没有创建任何平板电脑
放入其中。现在,t
(实际上应该是小写;t
看起来既像常量又像类型参数)包含以下内容:
T: {null, null, null, null, null, null}
您需要创建新平板电脑
s并将其放入阵列中,可能如下所示:
for(int i = 0; i < array.length /* don't hardcode the size twice */; i++) {
array[i] = new Tablet();
array[i].set("111");
}
for(int i=0;i
当您这样做时
Tablet[] T = new Tablet[6];
您正在创建引用数组(即引用变量数组),这些引用不指向任何其他地方,即它们为空。您需要将对象分配给数组中上述创建的引用变量
Tablet[] T = new Tablet[6];
for(int i = 0;i<6;i++)
{
T[i]=new Tablet();
T[i].set("111"); // No Null Pointer Exception Now
}
Tablet[]T=新的Tablet[6];
对于(int i=0;i当你这样做时
Tablet[] T = new Tablet[6];
您正在创建引用数组(即引用变量数组),这些引用不指向任何其他地方,即它们为空。您需要将对象分配给数组中上述创建的引用变量
Tablet[] T = new Tablet[6];
for(int i = 0;i<6;i++)
{
T[i]=new Tablet();
T[i].set("111"); // No Null Pointer Exception Now
}
Tablet[]T=新的Tablet[6];
对于(inti=0;i您需要初始化数组的索引
class Tablet {
String S = null;
void set(String a) {
S = a;
}
}
class questions {
public static void main(String args[]) {
Tablet[] T = new Tablet[6];
for (int i = 0; i < 6; i++) {
T[i] = new Tablet();
T[i].set("111"); // I get null pointer exception here
}
//solution(T,6);
}
}
类平板电脑{
字符串S=null;
无效集(字符串a){
S=a;
}
}
课堂提问{
公共静态void main(字符串参数[]){
片剂[]T=新片剂[6];
对于(int i=0;i<6;i++){
T[i]=新片剂();
T[i].set(“111”);//我在这里得到空指针异常
}
//溶液(T,6);
}
}
您需要初始化数组的索引
class Tablet {
String S = null;
void set(String a) {
S = a;
}
}
class questions {
public static void main(String args[]) {
Tablet[] T = new Tablet[6];
for (int i = 0; i < 6; i++) {
T[i] = new Tablet();
T[i].set("111"); // I get null pointer exception here
}
//solution(T,6);
}
}
类平板电脑{
字符串S=null;
无效集(字符串a){
S=a;
}
}
课堂提问{
公共静态void main(字符串参数[]){
片剂[]T=新片剂[6];
对于(int i=0;i<6;i++){
T[i]=新片剂();
T[i].set(“111”);//我在这里得到空指针异常
}
//溶液(T,6);
}
}
您已经初始化了数组。但是,数组中的元素指向null。因此,很明显,如果您尝试对null指针调用方法,您将得到null指针异常。
必须使用new关键字初始化数组中的每个对象
在对变量执行任何函数之前,必须添加一个T[i]=new Tablet();来初始化该变量
T[i]=new Tablet();
T[i].set("111");
在for循环中执行此操作您已经初始化了数组。但是,数组中的元素指向null。因此,很明显,如果您尝试对null指针调用方法,您将得到null指针异常。
必须使用new关键字初始化数组中的每个对象
在对变量执行任何函数之前,必须添加一个T[i]=new Tablet();来初始化该变量
T[i]=new Tablet();
T[i].set("111");
在for循环中执行此操作初始化数组不会在每个索引处创建新对象。初始化数组不会在每个索引处创建新对象。