Java setText方法和数组
嗨,我有一个costum类的数组,叫做entry,但是每次我试图在数组中设置一个条目的文本时,我都会得到一个错误Java setText方法和数组,java,arrays,loops,getter-setter,Java,Arrays,Loops,Getter Setter,嗨,我有一个costum类的数组,叫做entry,但是每次我试图在数组中设置一个条目的文本时,我都会得到一个错误 Entry [] myEntries = new Entry[length]; for(int i = 0; i < myEntries.length; i++) { myEntries[i].setText(new String("")); } 您将得到空指针异常。因为在使用每个元素之前,您需要初始化迭代中的每个元素。按下列步骤做 for(int i
Entry [] myEntries = new Entry[length];
for(int i = 0; i < myEntries.length; i++)
{
myEntries[i].setText(new String(""));
}
您将得到空指针异常。因为在使用每个元素之前,您需要初始化迭代中的每个元素。按下列步骤做
for(int i = 0; i < myEntries.length; i++)
{
myEntries[i] = new Entry();
myEntries[i].setText(new String(""));
}
除此之外,您还需要创建一个默认构造函数来使用上述版本,或者传递一个日期对象来使用您自己版本的构造函数,您应该为每个数组元素分配Entry对象,否则将得到NullPointerException 注意:要使其工作,您将需要Entry类中的默认构造函数。尝试替换 改为使用变量创建新字符串 如果这没有帮助,请显示您在尝试编译时得到的全部代码或错误
public class EntryMain {
public static void main(String[] args) {
Entry [] myEntries = new Entry[10];
for(int i = 0; i < myEntries.length; i++)
{
try {
myEntries[i].setText(new String(""));
} catch (Exception e) {
myEntries[i] = new Entry();
myEntries[i].setText(new String(""));
}
}
}
}
由于myEntries[]为空,并且您正在尝试读取某个索引,因此它将为您提供空指针异常
如上所述,许多人提到,如果您直接指定一个新条目,它将覆盖以前的对象,并且您将丢失数据
因此,如果发生异常,请尝试访问myEntries[]中的一个位置,然后将一个新条目分配给myEntries[]并设置xtWhatever您遇到的错误是什么?条目不是基元类型,因此它将使用空值初始化,而不设置您试图对空值执行某些操作的值,因此,您将得到一个异常,即空指针异常。请检查其他答案的实际原因,或至少在建议之前尝试自己的答案
Integer[] myEntries = new Integer[5];
// System.out.println(Arrays.toString(myEntries));
// above commented code prints "[null, null, null, null, null]"
for(int i = 0; i < myEntries.length; i++) {
myEntries[i] = new Entry();
myEntries[i].setText(new String(""));
}
public class EntryMain {
public static void main(String[] args) {
Entry [] myEntries = new Entry[10];
for(int i = 0; i < myEntries.length; i++)
{
try {
myEntries[i].setText(new String(""));
} catch (Exception e) {
myEntries[i] = new Entry();
myEntries[i].setText(new String(""));
}
}
}
}
public class Entry
{
Entry()
{
}
int date;
String text;
Entry(int date)
{
this.date = date;
}
public void setText(String text)
{
this.text = text;
}
public String getText()
{
return text;
}
public int getDate()
{
return date;
}
}