Java の配列に問題があります。クラスで配列をクラスフィールドとして使用していますが、クラスをインスタンス化していないため、これらはすべて静的です。私は次のように配列を呼び出します (ところで、これはオブジェクトの配列であり、'Customer' は独自のクラスです):
public static Customer[] cDatabase = new Customer[MAX_DATABASE];
MAX_DATABASE は、エントリの最大数を表す定数です。しかし、次のように入力するとどうなりますか。
className.cDatabase[0].firstName = "John";
(簡単にするためにメソッドの使用を避けています) その値は調整されますが、配列内の他のすべてのセルのすべての firstName フィールドも変更されます。これは、配列を呼び出した方法と関係があると確信していますが、これを行うと:
for(int i = 0; i<className.MAX_DATABASE; i++){
className.cDatabase[i] = new Customer();
}
次のようにフィールドを宣言した後:
public static Customer[] cDatabase;
しかし、その後、nullpointerexception が発生します。要素が配列の同じインデックスを指さないように、この配列を適切に機能させる最善の方法は何ですか? 正しい答えもNPEを回避すると確信しています...