문제

Java Me를위한 앱을 작성하고 있으며 일부 데이터 (전화 번호부)를 보유하기위한 수업이 필요합니다. 이 앱을 시작하려고 할 때는 항상 NullPointerException을 받고 있습니다. 나는 클래스의 생성자를 호출하고 있으며 10 가지 요소에 대한 메모리를 할당하므로 무효가되어서는 안됩니다. 내가 뭘 잘못하고 있죠?

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];
        }
    }
}
도움이 되었습니까?

해결책

레코드의 배열은 Null이 아니지만 각각의 개별 요소는입니다. 각 요소를 인스턴스화해야합니다. 지금은 10 개의 널 항목이있는 배열 일뿐입니다.

다른 팁

phoneBook.records[0].Name = new String("abc");  

해야한다

phoneBook.records[0] = new Record();
phoneBook.records[0].Name= new String("abc");// or  = "abc"

나는 아직 톰의 상세한 답변을 편집 할만 큼 아직 평판이 좋지는 않지만 정확합니다.

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

해야한다

phoneBook.records[0] = new Record();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top