我遇到了这段代码:
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")返回一个布尔值,它没有被赋值给任何东西或在控制流语句中使用
这只是一个方法调用.你不具备使用方法调用为别的结果.
这是很少忽略非空方法的结果是一个好主意(特别的返回值InputStream.read是有时被忽略时,它确实不应该),但语言规范不试图把这个作为一个问题.