Hi David, Stuart On Apr 26, 2011, at 8:34 PM, David Holmes wrote: > Hi Stuart, > > Actually my comments more a response to Remi's assertion that clone should > have been used instead, without giving any technical rationale as to why > clone would be better, and so much better that it warranted Lance changing > the code. > > Personally I think we should be steering people to Arrays.copyOf for all > their array copying needs. clone() is effectively legacy code. It may have a > small performance benefit though ultimately both methods are intrinisified by > the same C2 code so I don't believe the gain would be much, and likely only > with smaller arrays. > > BTW I think Lance received communication from others over the use of copyOf > versus clone, I never made any additional comments on the relative merits.
Yes, I did receive additional input WRT using copyOf. I am going to stick with copyOf and I appreciate Remi's time and input (as I really do not want to change BatchUpdateException again ;-) ). Thank you for input. My Best, Lance > > Cheers, > David > > Stuart Marks said the following on 04/27/11 01:20: >> Hi David, >> I have a general code style question about this. This arose in the review of >> Lance's webrevs for 7038565 [1] but I'm starting a new thread since I don't >> want further discussion to drag out that review. >> In that review, Lance initially used Arrays.copyOf() to do defensive copying >> of an array. Rémi suggested calling clone() instead, and Lance changed it, >> but it looks like you (David) convinced him to change it back to use >> Arrays.copyOf(). >> (Quotes from the emails are below, but the attribution is hard to follow.) >> What's the rationale for using Arrays.copyOf() in this case? To me, clone() >> is the clearest and most concise way of making the copy. Arrays.copyOf() is >> slightly more verbose and the reader has to do a tiny bit of analysis to >> determine that the length isn't being changed, since the value passed is the >> current length. Is there some other reason I'm not aware of that >> Arrays.copyOf() should be preferred? >> I guess, one point is that it's hard to find the javadoc for the array >> clone() call. :-) >> I guess I'm mainly aiming this at David since he seemed to be the strongest >> advocate for the use of Arrays.copyOf(), but I'd welcome opinions from >> others as well. >> s'marks >> [1] >> http://mail.openjdk.java.net/pipermail/core-libs-dev/2011-April/006694.html >> On 4/25/11 9:28 AM, Lance Andersen - Oracle wrote: >>> On Apr 23, 2011, at 6:11 AM, David Holmes wrote: >>> >>>> > Rémi Forax said the following on 04/23/11 04:22: >>>>> >> On 04/22/2011 06:51 PM, Lance Andersen - Oracle wrote: >>>>>>> >>>> >>>>>>> >>>> You should use clone() instead of Arrays.copyOf. >>>>>> >>> >>>>>> >>> Can you explain why you have a preference for clone() in this case? >>>>> >> It does the job :) >>>>> >> Arrays.copyOf() allows to resize the array. >>>> > >>>> > So? That's not a reason to not use Arrays.copyOf. Look at copyOf as the >>>> > new improved version of clone. >>>> > Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037 Oracle Java Engineering 1 Network Drive Burlington, MA 01803 lance.ander...@oracle.com