Immutable function arguments in java

Dana Afa :

I am new to java and I've come across this question: in C/C++ we have const modifier which makes function parameters Immutable, Therefore user is confident that the arguments they pass wont change.

But I could not find the same thing in java. Sure final modifier makes the field assignable only once and it works fine to some extent. But what about Objects that I need to modify before sending?(I could make a final copy of the Object but I don't find it good enough. correct me if I'm wrong). what about Object's fields? how we can pass an Object in a way that we would be confident of the integrity of the Object?

Tom Hawtin - tackline :

In Java immutability is an intrinsic property of the type.

For instance String is immutable. No need for const. StringBuilder, CharSequence are, or maybe, mutable. So will need a copy. In these cases a quick .toString(). will do the job.

C++ defaults to an implicit copy for arguments. Copying is in someways a better version of immutability. const & is kind of effectively a way of getting a copy without paying for it. (I'm sure many people will strongly disagree with this paragraph.)

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=19041&siteId=1