diff --git a/spring-core/src/main/java/org/springframework/core/type/ClassMetadata.java b/spring-core/src/main/java/org/springframework/core/type/ClassMetadata.java index 627be0f472f..4fa55f9cd7f 100644 --- a/spring-core/src/main/java/org/springframework/core/type/ClassMetadata.java +++ b/spring-core/src/main/java/org/springframework/core/type/ClassMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -63,19 +63,18 @@ public interface ClassMetadata { boolean isFinal(); /** - * Determine whether the underlying class is independent, - * i.e. whether it is a top-level class or a nested class - * (static inner class) that can be constructed independent - * from an enclosing class. + * Determine whether the underlying class is independent, i.e. whether + * it is a top-level class or a nested class (static inner class) that + * can be constructed independently from an enclosing class. */ boolean isIndependent(); /** - * Return whether the underlying class has an enclosing class - * (i.e. the underlying class is an inner/nested class or - * a local class within a method). - *

If this method returns {@code false}, then the - * underlying class is a top-level class. + * Return whether the underlying class is declared within an enclosing + * class (i.e. the underlying class is an inner/nested class or a + * local class within a method). + *

If this method returns {@code false}, then the underlying + * class is a top-level class. */ boolean hasEnclosingClass(); diff --git a/spring-core/src/main/java/org/springframework/core/type/StandardClassMetadata.java b/spring-core/src/main/java/org/springframework/core/type/StandardClassMetadata.java index 9a0eee891e4..a30da37fcd9 100644 --- a/spring-core/src/main/java/org/springframework/core/type/StandardClassMetadata.java +++ b/spring-core/src/main/java/org/springframework/core/type/StandardClassMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,6 +21,7 @@ import java.util.LinkedHashSet; import org.springframework.lang.Nullable; import org.springframework.util.Assert; +import org.springframework.util.StringUtils; /** * {@link ClassMetadata} implementation that uses standard reflection @@ -124,11 +125,11 @@ public class StandardClassMetadata implements ClassMetadata { @Override public String[] getMemberClassNames() { - LinkedHashSet memberClassNames = new LinkedHashSet<>(); + LinkedHashSet memberClassNames = new LinkedHashSet<>(4); for (Class nestedClass : this.introspectedClass.getDeclaredClasses()) { memberClassNames.add(nestedClass.getName()); } - return memberClassNames.toArray(new String[memberClassNames.size()]); + return StringUtils.toStringArray(memberClassNames); } } diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/ClassMetadataReadingVisitor.java b/spring-core/src/main/java/org/springframework/core/type/classreading/ClassMetadataReadingVisitor.java index d3afe98107d..4564033876a 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/ClassMetadataReadingVisitor.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/ClassMetadataReadingVisitor.java @@ -29,6 +29,7 @@ import org.springframework.asm.SpringAsmInfo; import org.springframework.core.type.ClassMetadata; import org.springframework.lang.Nullable; import org.springframework.util.ClassUtils; +import org.springframework.util.StringUtils; /** * ASM class visitor which looks only for the class name and implemented types, @@ -64,7 +65,7 @@ class ClassMetadataReadingVisitor extends ClassVisitor implements ClassMetadata private String[] interfaces = new String[0]; - private Set memberClassNames = new LinkedHashSet<>(); + private Set memberClassNames = new LinkedHashSet<>(4); public ClassMetadataReadingVisitor() { @@ -208,7 +209,7 @@ class ClassMetadataReadingVisitor extends ClassVisitor implements ClassMetadata @Override public String[] getMemberClassNames() { - return this.memberClassNames.toArray(new String[this.memberClassNames.size()]); + return StringUtils.toStringArray(this.memberClassNames); }