Java 不输入if语句

Java 不输入if语句,java,Java,我已经为作业编写了Java代码,下面的方法就是其中的一部分:` public boolean checkList(String word) { ListNode current = firstNode; boolean flag = false; while ( current != null ) { System.out.println("inside while"); if (current.getObject().equals(wor

我已经为作业编写了Java代码,下面的方法就是其中的一部分:`

public boolean checkList(String word) {
    ListNode current = firstNode;
    boolean flag = false;
    while ( current != null ) {
        System.out.println("inside while");
        if (current.getObject().equals(word)) {
            System.out.println("true");
            flag = true;
        }
        current = current.getNext();
        System.out.println("next node");
    }
    return flag;
}
该方法应该检查字符串参数是否存在于字符串对象列表中,如果存在,则返回true。在对许多System.outs进行了数小时的调试之后,我意识到由于某种原因,我永远无法进入if语句,即使在特定情况下它应该是这样的。列表不是从java库导入的,我自己创建了一个列表类,因为它是被请求的
您知道可能出现什么问题吗?

我们没有您的数据结构或支持代码来运行您的代码,因此我相信,在这一点上,您需要调试更多的代码。打印出word,打印出getObject返回的current对象,找出您的程序在做什么,从而找出代码出现错误的原因。如果你仍然被困,考虑创建和张贴。什么是第一个节点,它在哪里分配?不知道。相信JVM:如果它告诉您它不会进入块内部,那是因为条件不满足。很容易假设您已经正确地完成了每件事,而JVM不可能做到这一点。检查这个假设:JVM是对的,而您是错的。打印出current、getObject的结果和word,看看它为什么不进入该块。或者,更好的方法是使用IDE逐步完成代码。您可以尝试此方法进行更多调试吗?System.out.PrintLnInner while+current.getObject.getClass;不要使用堆积如山的System.out.println语句进行调试。学习使用调试器。这会节省你几个小时。如果你成为一名专业程序员,那么知道如何使用调试器将节省你的生命,你可以花上几年的时间回答堆栈溢出的问题。