jdm*_*jdm 7 java const-correctness
有没有办法const在Java中实现类似于C++的东西?具体来说,我有一个像
private static Vector2 sum(Vector2 vec1, Vector2 vec2) {
return vec1.cpy().add(vec2);
}
Run Code Online (Sandbox Code Playgroud)
而且我想
现在我知道java严格按引用传递(我只是戏弄,我知道它是传值,或者更确切地说是复制 - 引用).我的意思是,在Java中,当您调用方法时,将复制引用,但该引用指向相同的对象内容.如果类具有公共字段或setter,则被调用的方法始终可以修改传递的对象的内容.是否有任何例如注释@NotNull或工具来防止这种情况?我刚刚发现JetBrains注释@Contract(pure = true),但我不认为它们提供任何检查.
您不能保证该方法不会更改参数。如果你想避免改变对象,你应该让它不可变。您可以使用一些包装类在内部传递,而不需要提供设置器。或者,如果您需要调用某些包本地方法,您可以使您的设置器成为包本地的,并在同一包中使用一些访问帮助器类。
| 归档时间: |
|
| 查看次数: |
4229 次 |
| 最近记录: |