要确保此功能无法关闭,请阅读此内容。这不是一个重复的帖子,因为唯一的其他用户输入设置器在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。
答案 0 :(得分:0)
想一想:你在哪里设定这个词? setWord
分配toString
的返回值,返回getWord
的结果,但getWord
只返回this.word
已经存在的内容!在任何地方你都没有说过一句话,所以它从未被初始化!您只需将this.word
设置为原来的null
。当您致电secretWord.length()
时,这会导致NPE,因为secretWord
为null
。
你还有另一个问题,我假设这是一个错字,你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)