0

次のクラスでこの NullPointerException を取り除くことができません。私のコントローラーはこのクラスを拡張していますが、下のコンストラクターをコメントアウトすると問題は解決します...何が間違っていますか?

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'contentController' defined in file [C:\Users\bkuhl\JavaProjects\cmt\cmt\target\cmt\WEB-INF\classes\com\site\cmt\web\ContentController.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.fettergroup.cmt.web.ContentController]: Constructor threw exception; nested exception is java.lang.NullPointerException

public class Controller {
    private List<String> cssFiles;
    private List<String> jsFiles;

    public Controller () {
        this.addCss("global.css");
        this.addJs("global.js");
    }

    public ModelAndView render (ModelAndView model) {

        //add Js & Css files
        model.addObject("cssFiles", this.cssFiles);
        model.addObject("jsFiles", this.jsFiles);

        return model;
    }

    /*
     * Add a css file to the page
     */
    public final void addCss (String cssPath) {
        cssFiles.add(this.cssFiles.size(), cssPath);
    }

    /*
     * Add a javascript file to the page
     */
    public final void addJs (String jsPath) {
        jsFiles.add(this.jsFiles.size(), jsPath);
    }
}
4

2 に答える 2

3

cssFiles明示的に初期化されてjsFilesいないため、null です。Listなどの実装でそれらを初期化する必要がありますArrayList

private List<String> cssFiles = new ArrayList<String>();
private List<String> jsFiles = new ArrayList<String>();

フィールド (クラス変数) を宣言して代入しない場合、値はデフォルトで null (参照の場合)、0 (数値の場合)、または false (ブール値の場合) になります。

于 2012-04-27T00:24:00.290 に答える
0
public Controller () {
    this.cssFiles = new ArrayList<String>();
    this.jsFiles = new ArrayList<String>();
    this.addCss("global.css");
    this.addJs("global.js");
}

そして、なぜこれを行うのですか:

public final void addCss (String cssPath) {
    cssFiles.add(this.cssFiles.size(), cssPath);
}

public final void addJs (String jsPath) {
    jsFiles.add(this.jsFiles.size(), jsPath);
}

最初の引数は本当に必要ありません...

于 2012-04-27T00:29:47.220 に答える