为什么没有必要将方法的返回值赋给变量?

Sur*_*ran 11 java return-value

可能重复:
如果您没有引用它,Java中的对象会发生什么,例如:myString.concat("that")

public class ReturnTest
{
    public static void main(String[] args)
    {
        ReturnTest rt = new ReturnTest();
        rt.show();
    }

    public String show()
    {
        return "Hello";
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,该show()方法返回一个String未被任何变量捕获的值.编译器和JVM都不会引发任何警告,错误或异常.原始返回类型也是如此.为什么?

编译器是否应该确保方法返回的重要值没有丢失?

我怎么能从shell修复这个?

Tho*_*ler 11

这是语言的设计.

在许多情况下,方法返回您不关心的值.例如,StringBuilder.append()返回对象本身.

确实,在某些情况下,重要的返回值可能会丢失.例如,InputStream.skip(long n)返回跳过的字节数.并read返回读取的字节数.有一些工具(Checkstyle,FindBugs)可以检测到这些错误.但语言本身并不要求检查返回值.即使这样,程序也可以选择忽略该值.

  • 您可以在命令行上或作为构建的一部分运行Checkstyle和FindBugs.但是,为什么不使用IDE呢? (2认同)

Boz*_*zho 5

因为您不一定需要返回的值。

  • 假定程序员知道他们在做什么。如果他们不存储返回的值,则不需要它。 (3认同)