0

私は Java ME 用のアプリを書いていますが、いくつかのデータ (PhoneBook) を保持するためのクラスが必要です。このアプリを起動しようとすると、常に nullPointerException が発生します。クラスのコンストラクターを呼び出していますが、10 個の要素にメモリを割り当てるため、null にすることはできません。私は何を間違っていますか?

import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;

public class TinyMIDlet extends MIDlet implements CommandListener {

    private PhoneBook phoneBook = new PhoneBook();

    public void initPhoneBook() {
        phoneBook.records[0].Name = new String("abc");        
    }

    protected void startApp() {
        initPhoneBook();
    }

    public class Record {
        public String Name;
        public String Number;
        public String email;
        public String Group;
    }

    public class PhoneBook {
        public Record[] records;

        PhoneBook() {
            records = new Record[10];
        }
    }
}
4

3 に答える 3

13

レコードの配列は null ではありませんが、その個々の要素は null です。各要素もインスタンス化する必要があります。現在は、10 個の null エントリを含む単なる配列です。

于 2009-10-29T16:24:27.727 に答える
4
phoneBook.records[0].Name = new String("abc");  

する必要があります

phoneBook.records[0] = new Record();
phoneBook.records[0].Name= new String("abc");// or  = "abc"
于 2009-10-29T16:46:00.163 に答える
0

私はトムの詳細な答えを編集するのにまだ十分に評判が良くありませんが(ええ)、正確には

phoneBook.records[0] = new something();

する必要があります

phoneBook.records[0] = new Record();
于 2009-10-29T16:49:59.173 に答える