diff options
author | Jeroen Frijters <jeroen@sumatra.nl> | 2006-04-23 10:13:17 +0000 |
---|---|---|
committer | Jeroen Frijters <jeroen@sumatra.nl> | 2006-04-23 10:13:17 +0000 |
commit | 2c65ecb9933d810fd553d84ce938e921e907b6e2 (patch) | |
tree | 8b6fe198ebf8a73403650c8ce93124b72577fcfa /java/lang/Class.java | |
parent | 7705dee3500ff4f9a1b41a817d2225abc295f3e9 (diff) | |
download | classpath-2c65ecb9933d810fd553d84ce938e921e907b6e2.tar.gz |
2006-04-23 Jeroen Frijters <jeroen@frijters.net>
* java/lang/Class.java (getEnumConstants): Implemented without
delegating to VMClass.
* vm/reference/java/lang/VMClass.java (getEnumConstants): Removed.
Diffstat (limited to 'java/lang/Class.java')
-rw-r--r-- | java/lang/Class.java | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/java/lang/Class.java b/java/lang/Class.java index 2152accf3..c5ec1536d 100644 --- a/java/lang/Class.java +++ b/java/lang/Class.java @@ -1374,7 +1374,31 @@ public final class Class<T> */ public T[] getEnumConstants() { - return (T[])VMClass.getEnumConstants(this); + if (isEnum()) + { + try + { + return (T[]) getMethod("values").invoke(null); + } + catch (NoSuchMethodException exception) + { + throw new Error("Enum lacks values() method"); + } + catch (IllegalAccessException exception) + { + throw new Error("Unable to access Enum class"); + } + catch (InvocationTargetException exception) + { + throw new + RuntimeException("The values method threw an exception", + exception); + } + } + else + { + return null; + } } /** |