引用另一个类作为实例变量?

时间:2013-02-15 23:53:17

标签: java class methods

我正在寻找一些帮助来利用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 个答案:

答案 0 :(得分:1)

在您显示的代码中word永远不会给出值,因此它将是null

您可能需要以下内容:

 private HangmanLexicon word = new HangmanLexicon();

或者您可能需要获取一个HangmanLexicon对象以其他方式放入您的实例变量。

注意如果您正在为斯坦福CS课程(或类似的大学课程)这样做,我通过搜索在线找到了HangmanLexicon的来源。如果AND ONLY,那么上面的行将起作用与我找到的代码相同。

答案 1 :(得分:1)

创建变量我们不够:你也必须为它分配一些东西。

private HangmanLexicon word = /*put something here*/;

答案 2 :(得分:1)

您尚未初始化word变量。所以它有默认值:null。在null对象上调用方法会导致NullPointerException。

阅读一本关于Java的好书,或Java tutorial。这是您需要了解的基本内容。

答案 3 :(得分:1)

发生NullPointerException的原因是因为word没有分配值。在使用word调用方法getWord(5);

之前,您必须先为private HangmanLexicon word; ^ 指定值
private HangmanLexicon word=new HangmanLexicon();

初始化或分配这样的单词,如下所示

{{1}}