1

Javaの別のクラスのメソッドを利用するためのヘルプを探しています。いくつかのgetterメソッドとsetterメソッドを持つクラスを作成しました。getterメソッドには、switchステートメントの大文字と小文字を決定するパラメーター「i」が渡されたswitchステートメントが含まれています。

現在、メインプログラムでそのクラスメソッドを使用しようとしていますが、何らかの理由でjava.lang.nullpointerexceptionを取得しています。

私のメインプログラムのコードは次のようになります。

public class Hangman extends ConsoleProgram {

    public void run() {

        String name = word.getWord(5);

        println(name);
    }



    /* Private Instance Variable */
    private HangmanLexicon word; // Creates a new lexicon from the HangmanLexicon class.
    private RandomGenerator rgen = RandomGenerator.getInstance(); // Creates a new random generator instance.

}

お分かりのように、私はプライベートivarを作成しましたが、何らかの理由で機能しません。どんな助けでも素晴らしいでしょう!ありがとう!

4

4 に答える 4

1

NullPointerException単語に値が割り当てられていないため、理由が発生します。wordメソッドを呼び出すために使用する前に、最初に値を割り当てる必要がありますgetWord(5)

private HangmanLexicon word;
                        ^

代わりに、次のようにこのような単語を初期化または割り当てます

private HangmanLexicon word=new HangmanLexicon();
于 2013-02-15T23:56:49.327 に答える
1

表示するコードでwordは、値が指定されることはないため、次のようになります。null

次のようなものが必要になる場合があります。

 private HangmanLexicon word = new HangmanLexicon();

または、インスタンス変数を別の方法で配置するために、HangmanLexiconオブジェクトを取得する必要がある場合があります。

スタンフォードCSクラス(または同様の大学クラス)でこれを行っている場合は、オンラインでHangmanLexiconのソースを検索して見つけました。上記の行は、それが私が見つけたものと同じコードである場合にのみ機能します。

于 2013-02-15T23:55:10.280 に答える
1

変数を作成するだけでは不十分です。変数にも何かを割り当てる必要があります。

private HangmanLexicon word = /*put something here*/;
于 2013-02-15T23:55:20.813 に答える
1

word変数を初期化していません。したがって、デフォルト値はnullです。また、nullオブジェクトでメソッドを呼び出すと、NullPointerExceptionが発生します。

Javaに関する優れた本、またはJavaチュートリアルを読んでください。これはあなたが理解する必要がある基本的なことです。

于 2013-02-15T23:55:54.430 に答える