2013-02-15 64 views
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. 

}

所以你可以告诉我创建的私有实例变量,但由于某种原因,这是行不通的。任何帮助将是伟大的!谢谢!

回答

1

在你的代码显示word从未给出一个值,所以这将是null

你可能需要的东西,如:

private HangmanLexicon word = new HangmanLexicon(); 

或者,您可能需要获得一个HangmanLexicon对象把你的一些其他方式的实例变量。

注意如果你正在为斯坦福大学CS类(或类似的大学课程)做这个工作,我通过搜索发现了HangmanLexicon的来源。上面的行将工作如果和只有,如果这是我找到的相同的代码。

+0

非常感谢您为!我明白我需要为变量分配一个值,但我不确定要赋值的值。非常感谢你! – Jonathan 2013-02-16 00:02:10

1

创建变量us还不够:你也必须给它分配一些东西。

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

谢谢你回来,但我作为一个班级的价值是什么?它不一定有一个定义类型的String,int等。那么我将赋值给它什么值? – Jonathan 2013-02-15 23:58:03

1

您还没有初始化word变量。所以它有默认值:null。并且调用空对象上的方法会导致NullPointerException。

阅读一本关于Java的好书,或者Java tutorial。这是你需要理解的基本东西。

1

发生原因为NullPointerException是因为单词没有赋值。在使用它调用方法getWord(5)之前,您必须首先将值分配给word;

private HangmanLexicon word; 
         ^

初始化或分配字这样反而如下

private HangmanLexicon word=new HangmanLexicon(); 
+0

非常感谢你!我知道我必须初始化变量,但我不知道该写什么值。谢谢! – Jonathan 2013-02-16 00:08:42

+0

你是指单词的价值?单词是“HangmanLexican”类的一个实例,通过使用单词可以调用该类的不同方法 – nsgulliver 2013-02-16 00:12:36

相关问题