0

このエラーが発生した理由を知りたいのですが。あなたはアイデアを持っていますか、そしてそれを修正する方法を知っていますか?

エラー(put()でこのエラーが発生します):

Exception in thread "main" java.lang.NullPointerException
at nacs.put(nacs.put:36)
at Program.main(Program.java:69)

プログラム:(メイン)

Nac nacs = new Nac();
nacs.put(new Intsult(1));
nacs.put(new Intsult(2));

クラス:

public class Nac implement IPoraw
{
public List<IAbstrsUlt> abs;
public void put(IAbstrsUlt value)
{
abs.add(value);
}
}
4

3 に答える 3

10

リストを初期化します。

private List<IAbstrsUlt> abs = new ArrayList<IAbstrsUlt>();

注:メンバーをより制限的に宣言するように常に努める必要があります。Objectのデフォルト値はnullです。デフォルト値については、Oracleチュートリアルを参照してください。

于 2012-11-03T17:23:50.037 に答える
2

変数absが初期化されることはありません。

これを試して

public List<IAbstrsUlt> abs = new ArrayList<>();
于 2012-11-03T17:25:06.580 に答える
1
public List<IAbstrsUlt> abs;

-上記のステートメントでは、タイプの名前付きを宣言しただけであり、のデフォルト値はであるため、この場合も同様です。List Reference VariableabsIAbstrsUltObject Reference Variablenull

-初期化する必要があります。

public List<IAbstrsUlt> abs = new List<IAbstrsUlt>();

于 2012-11-03T17:29:01.657 に答える