java.lang.reflect.Method.copyOf

Remi Forax forax at univ-mlv.fr
Wed Oct 14 14:15:17 UTC 2015


----- Mail original -----
> De: "Paul Sandoz" <paul.sandoz at oracle.com>
> Cc: "core-libs-dev" <core-libs-dev at openjdk.java.net>
> Envoyé: Mercredi 14 Octobre 2015 13:46:38
> Objet: Re: java.lang.reflect.Method.copyOf
> 
> 
> > On 14 Oct 2015, at 12:38, Remi Forax <forax at univ-mlv.fr> wrote:
> > 
> > Given that j.l.r.Method is mutable, the best way to have performance is too
> > encapsulate it in a non mutable class, if possible.
> > 
> > As far as i know j.l.r.Method was introduced in Java 1.1 as non mutable and
> > become mutable with Java 1.2, (yes, someone seriously fucked up !)
> 
> Some harsh language there :-) I don’t know the full history but i like to
> think this may have been a frustrating compromise due to some demanding
> serialization requirements under a tight schedule.

Methods are not serializable.
And i will not throw the first rock ... after all we all have our own museum of bad decisions.

> 
> It’s definitely annoying that there is a mutable bit associated with each
> accessible object, which in turn has an impact a number of fundamental areas
> (such as final fields, strong module boundaries)
> 
> Paul.

regards,
Rémi

> 
> > so methods like copyOf were introduced to do defensive copies (the sharing
> > mechanism was later introduced, in 1.4, i believe).
> > 
> > cheers,
> > Rémi
> 
> 



More information about the core-libs-dev mailing list