java 中的不可变函数参数

Immutable function arguments in java

我是 java 的新手,我遇到过这个问题: 在 C/C++ 中,我们有 const 修饰符,它使函数参数 Immutable,因此用户确信他们传递的参数不会改变。

但我在 java 中找不到同样的东西。当然 final 修饰符使该字段只能分配一次,并且在某种程度上可以正常工作。但是在发送之前我需要修改的对象呢?(我可以制作对象的最终副本,但我觉得它不够好。如果我错了请纠正我)。对象的字段呢?我们如何才能以确信对象完整性的方式传递对象?

在 Java 中,不变性是类型的内在 属性。

例如String是不可变的。不需要 constStringBuilderCharSequence 是或可能是可变的。所以需要一份副本。在这些情况下,快速 .toString()。会做的。

C++ 默认为参数的隐式副本。复制在某种程度上是不变性的更好版本。 const & 是一种无需付费即可获得副本的有效方式。 (我相信很多人会强烈反对这一段。)