相关疑难解决方法(0)

if/for/while中的"缺少退货声明"

我有一个关于在语句if() while()for()语句中使用的返回语句的问题.正如您在下面的方法中所看到的,它期望我return是一个String值.问题是,如果我returnif语句块中使用语句,编译器将返回错误missing return statement.

public String myMethod()
{
    if(condition)
    {
       return x;
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,我可以将方法标题更改为void并使用System.out.println而不是return.但这是正确的方法吗?我错过了什么吗?

任何帮助都非常感谢.

java return

15
推荐指数
3
解决办法
9万
查看次数

有没有办法将Java方法标记(例如注释)为永不返回?

我刚开始使用新的Eclipse 4.2(Juno)Null Analysis.

在这样的代码:

x = foo();
if (x == null)
    fail("x is null");
return x.bar();
Run Code Online (Sandbox Code Playgroud)

我收到的警告是x可能为空.但它不可能,因为失败总是抛出,因此永远不会回来.(通过更好的程序间分析,它可能会自动确定,但目前似乎没有.)

显然,有一些方法可以重写代码以绕过警告,但我想要的是一种表示失败的方法(例如注释)永远不会返回.

我也尝试使用@SuppressWarnings("null")来抑制警告,但这不起作用.

摆脱警告的一种方法是添加:( assert x != null;假设您已打开设置以在null分析中包含断言)

在GCC C++中我可以做到: void fn __attribute__ ((noreturn))

java eclipse

9
推荐指数
1
解决办法
1042
查看次数

标签 统计

java ×2

eclipse ×1

return ×1