我是Java的新手,我遇到了这个问题:在C / C ++中,我们有const修饰符,该修饰符使函数参数Immutable,因此用户确信他们传递的参数不会改变。
但是我在Java中找不到相同的东西。确保final修饰符使该字段只能分配一次,并且在某种程度上可以正常工作。但是我需要在发送之前修改的对象呢?(我可以制作对象的最终副本,但是我觉得它不够好。如果我写错了,请纠正我)。那对象的字段呢?我们如何以对对象的完整性充满信心的方式传递对象?
在Java中,不变性是该类型的固有属性。
例如String
是不可变的。不需要const。 StringBuilder
,CharSequence
可能是可变的。因此将需要一份副本。在这种情况下,请快速输入.toString()
。将完成这项工作。
C ++默认为参数的隐式副本。在某种程度上,复制是不变性的更好版本。 const &
是一种无需付费即可获取副本的有效方法。 (我敢肯定,很多人会强烈反对这一段。)