2015-05-05 14:52 GMT+02:00 Benedikt Ritter <brit...@apache.org>: > Hello Jörg, > > 2015-05-05 8:30 GMT+02:00 Jörg Schaible <joerg.schai...@swisspost.com>: > >> Hi Benedikt, >> >> brit...@apache.org wrote: >> >> > Repository: commons-lang >> > Updated Branches: >> > refs/heads/master 8548b12d8 -> 60b32953a >> > >> > >> > Allocate array of the correct size >> > >> > >> > Project: http://git-wip-us.apache.org/repos/asf/commons-lang/repo >> > Commit: >> > http://git-wip-us.apache.org/repos/asf/commons-lang/commit/60b32953 >> Tree: >> > http://git-wip-us.apache.org/repos/asf/commons-lang/tree/60b32953 Diff: >> > http://git-wip-us.apache.org/repos/asf/commons-lang/diff/60b32953 >> > >> > Branch: refs/heads/master >> > Commit: 60b32953a968e5623f82a6b27d6c679bc17c48e5 >> > Parents: 8548b12 >> > Author: Benedikt Ritter <brit...@apache.org> >> > Authored: Mon May 4 21:26:07 2015 +0200 >> > Committer: Benedikt Ritter >> > <brit...@apache.org> Committed: Mon May 4 >> > 21:26:07 2015 +0200 >> > >> > ---------------------------------------------------------------------- >> > .../apache/commons/lang3/builder/ReflectionToStringBuilder.java | 2 >> +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > ---------------------------------------------------------------------- >> > >> > >> > >> http://git-wip-us.apache.org/repos/asf/commons-lang/blob/60b32953/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java >> > ---------------------------------------------------------------------- >> > diff --git >> > >> >> a/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java >> > >> >> b/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java >> > index 5904469..7a78170 100644 --- >> > >> >> a/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java >> > +++ >> > >> >> b/src/main/java/org/apache/commons/lang3/builder/ReflectionToStringBuilder.java >> > @@ -333,7 +333,7 @@ public class ReflectionToStringBuilder extends >> > ToStringBuilder { >> > list.add(e.toString()); >> > } >> > } >> > - return list.toArray(ArrayUtils.EMPTY_STRING_ARRAY); >> > + return list.toArray(new String[list.size()]); >> > } >> >> What's the benefit of this? Where's the difference by letting >> List.toArray() >> allocate the appropriate array compared to do it on your own? >> ArrayUtils.EMPTY_STRING is a constant after all, so there's no additional >> allocation. >> > > I changed this because my IDE complained about that line of code: > > "Call to 'toArray' with zero-length array argument > 'ArrayUtils.EMPTY_STRING_ARRAY' > > Reports any call to 'toArray' on an object or type or subtype of > java.util.Collection with a zero-length argument. When passing an array of > too small size, the toArray() method has to construct a new array of the > correct size using reflection. This has significantly worse performance > than passing in an array of at least the size of the collection itself." > > To be honest, I did not do any performance benchmarks to make sure this is > really true. >
In any case, the commit message should have been more explanatory. Sorry about that. > > Benedikt > > >> >> - Jörg >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> For additional commands, e-mail: dev-h...@commons.apache.org >> >> > > > -- > http://people.apache.org/~britter/ > http://www.systemoutprintln.de/ > http://twitter.com/BenediktRitter > http://github.com/britter > -- http://people.apache.org/~britter/ http://www.systemoutprintln.de/ http://twitter.com/BenediktRitter http://github.com/britter