summaryrefslogtreecommitdiff
path: root/vm/reference/java/lang/reflect
diff options
context:
space:
mode:
authorAndrew John Hughes <gnu_andrew@member.fsf.org>2005-06-08 23:24:51 +0000
committerAndrew John Hughes <gnu_andrew@member.fsf.org>2005-06-08 23:24:51 +0000
commit88913bd165b7043de1b4e2eec5e37465321b8bb5 (patch)
tree9b1831d216a01f4fedb54df0147eecfa38c83938 /vm/reference/java/lang/reflect
parent9399c41550e32c6bd8ea2d299a09f7151f9dc7dd (diff)
downloadclasspath-88913bd165b7043de1b4e2eec5e37465321b8bb5.tar.gz
2005-06-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
* java/lang/Class.java: (internalGetClasses()): Use collections with type parameters. (internalGetFields()): Likewise. (internalGetMethods()): Likewise. (getSuperclass()): Changed to new return type. (asSubclass(Class<U>)): Documented. (getEnumConstants()): Calls VMClass. (getAnnotation(Class<?>)): Implemented. (getAnnotations()): Implemented. (getCanonicalName()): Implemented. (getDeclaredAnnotations()): Implemented. (getEnclosingClass()): Implemented. (getEnclosingConstructor()): Implemented. (getEnclosingMethod()): Implemented. (getGenericInterfaces()): Implemented. (getGenericSuperclass()): Implemented. (getTypeParameters()): Implemented. (isAnnotationPresent(Class<?>)): Implemented. (isAnonymousClass()): Implemented. (isLocalClass()): Implemented. (isMemberClass()): Implemented. * java/lang/Package.java: (getAnnotation(Class<?>)): Implemented. (getAnnotations()): Implemented. (getDeclaredAnnotations()): Implemented. (isAnnotationPresent(Class<?>)): Implemented. * java/lang/annotation/AnnotationTypeMismatchException.java: Added serial version UID. * java/lang/annotation/ElementType.java: Likewise. * java/lang/annotation/RetentionPolicy.java: Likewise. * java/lang/reflect/AnnotatedElement.java: Documented. * java/lang/reflect/Modifier.java: (toString(int)): Switched to using StringBuilder. (toString(int,StringBuilder)): Likewise. * vm/reference/java/lang/VMClass.java: (getSuperClass(Class<T>)): Updated return type. (getSimpleName(Class<?>)): Use VM methods directly. (getEnumConstants(Class<T>)): Implementation moved from Class. (getDeclaredAnnotations(Class<?>)): New native method. (getCanonicalName(Class<?>)): Implemented. (getEnclosingClass(Class<?>)): New native method. (getEnclosingConstructor(Class<?>)): New native method. (getEnclosingMethod(Class<?>)): New native method. (getGenericInterfaces(Class<?>)): New native method. (getGenericSuperclass(Class<?>)): New native method. (getTypeParameters(Class<T>)): New native method. (isAnonymousClass(Class<?>)): New native method. (isLocalClass(Class<?>)): New native method. (isMemberClass(Class<?>)): New native method. * vm/reference/java/lang/VMPackage.java: New VM class corresponding to java.lang.Package. (getDeclaredAnnotations(Class<?>)): New native method. * vm/reference/java/lang/VMSystem.java: Removed unnecessary imports. * vm/reference/java/lang/reflect/Constructor.java: (toString()): Changed StringBuffer to StringBuilder. (getTypeParameters()): Changed to native method. * vm/reference/java/lang/reflect/Field.java: (toString()): Changed StringBuffer to StringBuilder. * vm/reference/java/lang/reflect/Method.java: (getReturnType()): Updated return type. (toString()): Changed StringBuffer to StringBuilder. (invoke(Object,...)): Updated arguments.
Diffstat (limited to 'vm/reference/java/lang/reflect')
-rw-r--r--vm/reference/java/lang/reflect/Constructor.java19
-rw-r--r--vm/reference/java/lang/reflect/Field.java2
-rw-r--r--vm/reference/java/lang/reflect/Method.java6
3 files changed, 17 insertions, 10 deletions
diff --git a/vm/reference/java/lang/reflect/Constructor.java b/vm/reference/java/lang/reflect/Constructor.java
index e2c5e65a0..0692f92f9 100644
--- a/vm/reference/java/lang/reflect/Constructor.java
+++ b/vm/reference/java/lang/reflect/Constructor.java
@@ -185,7 +185,7 @@ public final class Constructor<T>
public String toString()
{
// 128 is a reasonable buffer initial size for constructor
- StringBuffer sb = new StringBuffer(128);
+ StringBuilder sb = new StringBuilder(128);
Modifier.toString(getModifiers(), sb).append(' ');
sb.append(getDeclaringClass().getName()).append('(');
Class[] c = getParameterTypes();
@@ -248,11 +248,18 @@ public final class Constructor<T>
throws InstantiationException, IllegalAccessException,
InvocationTargetException;
- /** FIXME
+ /**
+ * Returns an array of <code>TypeVariable</code> objects that represents
+ * the type variables declared by this constructor, in declaration order.
+ * An array of size zero is returned if this class has no type
+ * variables.
+ *
+ * @return the type variables associated with this class.
+ * @throws GenericSignatureFormatError if the generic signature does
+ * not conform to the format specified in the Virtual Machine
+ * specification, version 3.
* @since 1.5
*/
- public TypeVariable<?>[] getTypeParameters()
- {
- return new TypeVariable<?>[0];
- }
+ public native TypeVariable<?>[] getTypeParameters();
+
}
diff --git a/vm/reference/java/lang/reflect/Field.java b/vm/reference/java/lang/reflect/Field.java
index 36469796b..f82fc4a58 100644
--- a/vm/reference/java/lang/reflect/Field.java
+++ b/vm/reference/java/lang/reflect/Field.java
@@ -169,7 +169,7 @@ extends AccessibleObject implements Member
public String toString()
{
// 64 is a reasonable buffer initial size for field
- StringBuffer sb = new StringBuffer(64);
+ StringBuilder sb = new StringBuilder(64);
Modifier.toString(getModifiers(), sb).append(' ');
sb.append(getType().getName()).append(' ');
sb.append(getDeclaringClass().getName()).append('.');
diff --git a/vm/reference/java/lang/reflect/Method.java b/vm/reference/java/lang/reflect/Method.java
index 693c31c9f..d6aea0b6d 100644
--- a/vm/reference/java/lang/reflect/Method.java
+++ b/vm/reference/java/lang/reflect/Method.java
@@ -124,7 +124,7 @@ extends AccessibleObject implements Member
* Gets the return type of this method.
* @return the type of this method
*/
- public native Class getReturnType();
+ public native Class<?> getReturnType();
/**
* Get the parameter list for this method, in declaration order. If the
@@ -210,7 +210,7 @@ extends AccessibleObject implements Member
public String toString()
{
// 128 is a reasonable buffer initial size for constructor
- StringBuffer sb = new StringBuffer(128);
+ StringBuilder sb = new StringBuilder(128);
Modifier.toString(getModifiers(), sb).append(' ');
sb.append(getUserTypeName(getReturnType().getName())).append(' ');
sb.append(getDeclaringClass().getName()).append('.');
@@ -323,7 +323,7 @@ extends AccessibleObject implements Member
* @throws ExceptionInInitializerError if accessing a static method triggered
* class initialization, which then failed
*/
- public Object invoke(Object o, Object[] args)
+ public Object invoke(Object o, Object... args)
throws IllegalAccessException, InvocationTargetException
{
return invokeNative(o, args, declaringClass, slot);