gpt4 book ai didi

java - 使用对象数组调用另一个类的方法

转载 作者:行者123 更新时间:2023-12-01 14:46:30 25 4
gpt4 key购买 nike

我收到空指针异常错误,但我不明白出了什么问题。

public static void main(String[] args) {
CDlist CD[] = new CDlist[5];
CD[0].add();
}

这是我的main,非常简单,它只是创建5个CD对象并调用第一个对象的add方法。

public boolean add(){
String author;
String title;
String songTitle;
int amount;
boolean result = false;
if(numUsed < length){
System.out.println("Please input the name of the CD you wish to add.");
title = input.next();
CD[numUsed].title = title;
System.out.println("Please input the author of the CD you wish to add.");
author = input.next();
CD[numUsed].title = title;
System.out.println("Please input the amount of songs you want to have.");
amount = input.nextInt();
for(int i = 0; i<amount; i++){
System.out.println("Add song name:");
songTitle = input.next();
CD[numUsed].song[amount] = songTitle;
}
numUsed++;
result = true;
}
return result;
}

这是我在 CDlist 类中的添加方法

最佳答案

问题是

 CD[0].add();
由于 java 数组的工作方式,

CD[0] 为 null:

CDlist CD[] = new CDlist[5];

这会分配一个新的CDList数组,但列表中填充有null条目。为了使其包含有效的对象,您必须手动填充:

CDlist CD[] = new CDlist[5];
for(int i =0; i < 5; i++)
{
CD[i] = new CDList(); //or other constructor, or other way of getting CD object
}

如果不这样做,数组将只包含null,并且尝试调用该方法将失败,因为您尝试调用它的对象不存在。

关于java - 使用对象数组调用另一个类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15399488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com