方法签名中包含最终输入参数意味着什么?

发布于 2024-11-17 15:09:23 字数 235 浏览 3 评论 0原文

执行以下操作的原因是什么:

public void processSomething(final String hello, final String two, final Car car){}

而不是:

public void processSomething(String hello, String two, Car car){}

What would be the reason for doing the below:

public void processSomething(final String hello, final String two, final Car car){}

as opposed to:

public void processSomething(String hello, String two, Car car){}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

极度宠爱 2024-11-24 15:09:23

这意味着在方法内,您无法为参数分配新值。

想要这样做的一个常见原因是能够使用 中的参数匿名内部类只能引用final局部变量,包括参数。

这样做的另一个原因是,如果可能的话,您的编码风格倾向于将所有局部变量声明为final。 (我个人尝试将它们视为最终的,但实际上避免以这种方式声明它们,因为这会增加麻烦。)

It means that within the method, you can't assign new values to the parameters.

A common reason for wanting to do this is to be able to use the parameters within anonymous inner classes which can only reference final local variables, including parameters.

Another reason for doing this is if your coding style favours declaring all local variables as final if possible. (Personally I try to treat them as final, but avoid actually declaring them that way, as it adds cruft.)

我ぃ本無心為│何有愛 2024-11-24 15:09:23

这意味着您无法更改引用。字符串是不可变的,但如果汽车是可变的,您可以更改该汽车中的字段,但不能将其更改为另一辆汽车。

It means you cannot change the references. String is immutable, but if Car is mutable you can change the fields in that Car, you can't change it to another Car.

硬不硬你别怂 2024-11-24 15:09:23

这意味着您无法更改引用,但它无法阻止对象被更改。

It means you cannot change the references, but it cannot stop the object from being altered.

一场信仰旅途 2024-11-24 15:09:23

这意味着该对象的引用不能在方法内更改。

It means that the reference of this Object can not be changed within the method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文