Java 对象在返回语句外变为null
这可能是一个简单的问题,但我一直在寻找答案,只是到处都找不到。我试图使用一种方法来检查输入的答案与实际答案相比是否正确。实际答案由setter定义,getter也起作用。但在进行比较的方法中,它变为null。这不是为什么比较它们会返回null的问题,而是为什么correctAnswer首先是null。我很困惑,因为getCorrectAnswer()按预期工作 代码如下: 公共类multiplechicequestion实现问题 { }Java 对象在返回语句外变为null,java,Java,这可能是一个简单的问题,但我一直在寻找答案,只是到处都找不到。我试图使用一种方法来检查输入的答案与实际答案相比是否正确。实际答案由setter定义,getter也起作用。但在进行比较的方法中,它变为null。这不是为什么比较它们会返回null的问题,而是为什么correctAnswer首先是null。我很困惑,因为getCorrectAnswer()按预期工作 代码如下: 公共类multiplechicequestion实现问题 { } “answer!=correctAnswer”不起作用,因
“answer!=correctAnswer”不起作用,因为correctAnswer在该方法中为null。除非要检查两个类是否完全相同,即同一个对象,否则不应该对类使用相等。您应该使用
Object.equals
。所以answer.equals(correctAnswer)
更正确。另外,您确定先调用了setter吗?请提供一个。另请参阅我查看了compare strings线程,但找不到解决问题的任何方法。我没有提供答案。您共享的代码中没有任何内容会导致此问题。再一次,我们不能没有一个。我尝试了。相等和改变顺序,但似乎没有任何作用。调用getcorrectanswer可以很好地工作
String question;
String correctAnswer;
public String getQuestion()
{
return question;
}
public boolean isCorrectAnswer(String answer)
{
if (answer != correctAnswer)
{
return false;
}
return true;
}
public String getCorrectAnswer()
{
return correctAnswer;
}
public void setQuestion(String questionText){
question = questionText;
}
public void setAnswer(String answer){
correctAnswer = answer;
}