我正在寻找一些帮助来利用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,但由于某种原因它不起作用。任何帮助都会很棒!谢谢!
答案 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}}