我有一个Java方法.为了成为一个公共论坛,我要说我的方法叫做foo
Bar foo(Boolean flag)
{
flag = true;
return new Bar();
}
Run Code Online (Sandbox Code Playgroud)
我通过设置标志得到警告.不幸的是,我还没有办法抑制这种警告.这样做有"正确"的方法吗?现在我知道有些人会说不要使用out参数.相信我,当我说我有充分的理由这样做.如果在没有做出疯狂的事情的情况下无法绕过警告,我想这没关系.我只是不喜欢用警告检查代码.
Jon*_*eet 10
您收到警告是因为您的任务没有任何用处.您不应该检查此代码,因为它不会执行您认为的操作.例如:
Boolean x = false;
Bar bar = foo(x);
System.out.println(x); // Still false
Run Code Online (Sandbox Code Playgroud)
你的代码设置的值flag参数,它不会改变任何有关它在传递的值.Java的严格使用传递的价值,当它通过引用(它在这里做什么),包括.
如果Boolean是可变的你可以写:
// Not actually valid
flag.setValue(true);
Run Code Online (Sandbox Code Playgroud)
并更改x第一段代码中引用的对象的内容- 但Java中的所有包装器类型都是不可变的.
现在还不是很清楚你的更高层次的目的是什么,但基本上它不会由你给出的代码完成 - 所以注意警告,并改变你的方法.
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |