为什么我可以使用.equalsIgnoreCase("anoterString")而不将其分配给变量或控制流语句?

Bar*_*lla 1 java

我遇到了这段代码:

    for (final String s : myList)
    {
        s.equalsIgnoreCase(test);
        updateNeeded = true;
        break;              
    }
Run Code Online (Sandbox Code Playgroud)

我怀疑这不是程序员真正想做的事情.我相信他的意思是写下:

    for (final String s : myList)
    {
        if(s.equalsIgnoreCase(test))
        {
            updateNeeded = true;
                break;
        }   
    }
Run Code Online (Sandbox Code Playgroud)

但是,我不明白为什么第一个代码段中没有错误.

 s.equalsIgnoreCase(test);    
Run Code Online (Sandbox Code Playgroud)

因为方法.equalsIgnoreCase("anoterString")返回一个布尔值,它没有被赋值给任何东西或在控制流语句中使用

Jon*_*eet 5

这只是一个方法调用.你不具备使用方法调用为别的结果.

这是很少忽略非空方法的结果是一个好主意(特别的返回值InputStream.read是有时被忽略时,它确实不应该),但语言规范不试图把这个作为一个问题.