Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java setText方法和数组_Java_Arrays_Loops_Getter Setter - Fatal编程技术网

Java setText方法和数组

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

嗨,我有一个costum类的数组,叫做entry,但是每次我试图在数组中设置一个条目的文本时,我都会得到一个错误

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;
  }

}