From 08b90285b299e40c8d851099063e5af9b0244ffd Mon Sep 17 00:00:00 2001 From: Christoph Dreis Date: Mon, 6 Apr 2020 13:46:09 +0200 Subject: [PATCH] 8242208: Use Method.getParameterCount where applicable Reviewed-by: redestad, chegar --- .../share/classes/java/lang/invoke/MethodHandleProxies.java | 6 +++--- .../share/classes/java/lang/reflect/Executable.java | 2 +- .../classes/sun/reflect/annotation/AnnotationType.java | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java b/src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java index 897da93ff19..160b09a33df 100644 --- a/src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java +++ b/src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java @@ -276,13 +276,13 @@ private static boolean isObjectMethod(Method m) { switch (m.getName()) { case "toString": return (m.getReturnType() == String.class - && m.getParameterTypes().length == 0); + && m.getParameterCount() == 0); case "hashCode": return (m.getReturnType() == int.class - && m.getParameterTypes().length == 0); + && m.getParameterCount() == 0); case "equals": return (m.getReturnType() == boolean.class - && m.getParameterTypes().length == 1 + && m.getParameterCount() == 1 && m.getParameterTypes()[0] == Object.class); } return false; diff --git a/src/java.base/share/classes/java/lang/reflect/Executable.java b/src/java.base/share/classes/java/lang/reflect/Executable.java index 95b50e94bc4..06c058c05c0 100644 --- a/src/java.base/share/classes/java/lang/reflect/Executable.java +++ b/src/java.base/share/classes/java/lang/reflect/Executable.java @@ -378,7 +378,7 @@ private Parameter[] synthesizeAllParams() { private void verifyParameters(final Parameter[] parameters) { final int mask = Modifier.FINAL | Modifier.SYNTHETIC | Modifier.MANDATED; - if (getParameterTypes().length != parameters.length) + if (getParameterCount() != parameters.length) throw new MalformedParametersException("Wrong number of parameters in MethodParameters attribute"); for (Parameter parameter : parameters) { diff --git a/src/java.base/share/classes/sun/reflect/annotation/AnnotationType.java b/src/java.base/share/classes/sun/reflect/annotation/AnnotationType.java index a81ca783249..28ba6fe952d 100644 --- a/src/java.base/share/classes/sun/reflect/annotation/AnnotationType.java +++ b/src/java.base/share/classes/sun/reflect/annotation/AnnotationType.java @@ -121,7 +121,7 @@ public Method[] run() { if (Modifier.isPublic(method.getModifiers()) && Modifier.isAbstract(method.getModifiers()) && !method.isSynthetic()) { - if (method.getParameterTypes().length != 0) { + if (method.getParameterCount() != 0) { throw new IllegalArgumentException(method + " has params"); } String name = method.getName();