gpt4 book ai didi

Java数组对象编译问题

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:31 24 4
gpt4 key购买 nike

下面的代码在编译时出错。我知道它缺少一些东西,但我就是不知道是什么。

public class Books {
String title;
String author;

public static void main(String[] args) {
// TODO Auto-generated method stub

Books[] myBooks = new Books[3];

myBooks[0].title = "Learn Java";
myBooks[1].title = "Java Development";
myBooks[2].title = "Java Today!";
myBooks[0].author = "S";
myBooks[1].author = "Mr. S";
myBooks[2].author = "SN";

int x = 0;
while (x < myBooks.length) {
x = x + 1;
System.out.print(myBooks[x].title);
System.out.print(" by ");
System.out.println(myBooks[x].author);
}

}

}

最佳答案

改变

    while (x < myBooks.length) {
x = x + 1;
System.out.print(myBooks[x].title);
System.out.print(" by ");
System.out.println(myBooks[x].author);
}

    while (x < myBooks.length) {
System.out.print(myBooks[x].title);
System.out.print(" by ");
System.out.println(myBooks[x].author);
x = x + 1;
}

考虑当 x=2 位于循环的 srat 时的情况。首先变成3,然后books[3]会抛出异常。

除此之外,您只是定义了一个数组,它只是引用。您需要初始化所有这些。

for(Books book : myBooks ) {
book = new Books();
}

如果您没有初始化数组,它们只是指向 null,如果您对其执行任何操作,例如 myBooks[i].title,您将得到 NPE。

关于Java数组对象编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23852516/

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