Java 对象在返回语句外变为null

Java 对象在返回语句外变为null,java,Java,这可能是一个简单的问题,但我一直在寻找答案,只是到处都找不到。我试图使用一种方法来检查输入的答案与实际答案相比是否正确。实际答案由setter定义,getter也起作用。但在进行比较的方法中,它变为null。这不是为什么比较它们会返回null的问题,而是为什么correctAnswer首先是null。我很困惑,因为getCorrectAnswer()按预期工作 代码如下: 公共类multiplechicequestion实现问题 { } “answer!=correctAnswer”不起作用,因

这可能是一个简单的问题,但我一直在寻找答案,只是到处都找不到。我试图使用一种方法来检查输入的答案与实际答案相比是否正确。实际答案由setter定义,getter也起作用。但在进行比较的方法中,它变为null。这不是为什么比较它们会返回null的问题,而是为什么correctAnswer首先是null。我很困惑,因为getCorrectAnswer()按预期工作

代码如下:

公共类multiplechicequestion实现问题 {

}


“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;
}