src/share/classes/sun/reflect/annotation/AnnotationType.java
Print this page
@@ -43,23 +43,22 @@
* Member name -> type mapping. Note that primitive types
* are represented by the class objects for the corresponding wrapper
* types. This matches the return value that must be used for a
* dynamic proxy, allowing for a simple isInstance test.
*/
- private final Map<String, Class<?>> memberTypes = new HashMap<String,Class<?>>();
+ private final Map<String, Class<?>> memberTypes;
/**
* Member name -> default value mapping.
*/
- private final Map<String, Object> memberDefaults =
- new HashMap<String, Object>();
+ private final Map<String, Object> memberDefaults;
/**
* Member name -> Method object mapping. This (and its assoicated
* accessor) are used only to generate AnnotationTypeMismatchExceptions.
*/
- private final Map<String, Method> members = new HashMap<String, Method>();
+ private final Map<String, Method> members;
/**
* The retention policy for this annotation type.
*/
private RetentionPolicy retention = RetentionPolicy.RUNTIME;;
@@ -103,10 +102,13 @@
// Initialize memberTypes and defaultValues
return annotationClass.getDeclaredMethods();
}
});
+ memberTypes = new HashMap<String,Class<?>>(methods.length+1, 1.0f);
+ memberDefaults = new HashMap<String, Object>(0);
+ members = new HashMap<String, Method>(methods.length+1, 1.0f);
for (Method method : methods) {
if (method.getParameterTypes().length != 0)
throw new IllegalArgumentException(method + " has params");
String name = method.getName();