Java Setter使用用户输入

时间:2018-06-05 22:33:19

标签: nullpointerexception getter-setter

要确保此功能无法关闭,请阅读此内容。这不是一个重复的帖子,因为唯一的其他用户输入设置器在C或c中,如果不是,它是完全不同的应用程序。如何设置我的setWord方法以使用用户输入而不是null。我当前的代码发出一个空指针,因为该变量为null,但我找不到一种可行的方法来使用用户输入设置它的值。当前代码:子类: 包刽子手;

public class Hangman {

private String word;

public void setWord(String word) {
    this.word = toString();
}

public String getWord() {
    return this.word;
}

@Override
public String toString() {
    System.out.println("Enter secret word: ");
    return (this.getWord());   
}

}

主要

public static void main(String[] args) {
Hangman hangman = new Hangman();
hangman.setWord();
String secretWord = hangman.getWord();
StringBuilder b = new StringBuilder(secretWord.length());
}

同样,问题在于我无法找到设置私有字符串的方法" word"用户输入而不是最终为空。请不要将此标记为重复我已经查看了通用的cookie cut nullpoporerexception线程但是没有帮助我。我一直坚持这一点,这是我计划的最后一部分。空指针始终位于stringbuilder,这表明secretWord为null。

2 个答案:

答案 0 :(得分:0)

想一想:你在哪里设定这个词? setWord分配toString的返回值,返回getWord的结果,但getWord只返回this.word已经存在的内容!在任何地方你都没有说过一句话,所以它从未被初始化!您只需将this.word设置为原来的null。当您致电secretWord.length()时,这会导致NPE,因为secretWordnull

你还有另一个问题,我假设这是一个错字,你setWord中对main的调用没有给出论据。这是非法的并且会产生自己的错误,因此它永远不会到达StringBuilder行。

setWord更改为:

public void setWord(String word) {
    this.word = word; ; Set it to its argument
}

然后用一个单词作为参数调用它:

hangman.setWord("Word");

答案 1 :(得分:0)

最初我有一个没有功能的toString。并且setWord方法需要一个我没有的参数来修复它我用这个替换了setWord代码

ctx.rotate(alfa)