我来自C++背景,目前我正在学习Java.当我尝试使用某些第三方库时出现了一个问题.如何确定对作为参数的对象引用的方法的调用是否修改了对象?在C++中,由于使用了const关键字,因此很清楚.如果方法签名是:
void foo(Boo& boo);
Run Code Online (Sandbox Code Playgroud)
我知道引用的对象可能会被修改,而如果方法签名是:
void foo(const Boo& boo);
Run Code Online (Sandbox Code Playgroud)
编译器保证不会修改引用的对象.
我没有在Java中看到类似的东西,因为只有引用本身可以被声明为final,而不是引用的对象,并且最终的参数在第一个地方没有多大意义,因为它无论如何都是通过值传递的.因此,当我看到一个方法,如:
void foo(Boo boo) {...}
Run Code Online (Sandbox Code Playgroud)
如何确定boo引用的对象是否在函数体内修改(可能使用注释)?如果没有办法知道,是否有一些广泛使用的约定或一些最佳实践来避免混淆和错误?