سؤال

وأنا أكتب التطبيق لجافا 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];
        }
    }
}
هل كانت مفيدة؟

المحلول

وومجموعة من السجلات ليست فارغة، ولكن كل عنصر على حدة من هو. تحتاج إلى مثيل كل عنصر كذلك، الآن انها مجرد مجموعة مع 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