Use Method.getParameterCount() 79/77879/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 16 Nov 2018 07:33:57 +0000 (08:33 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 16 Nov 2018 07:39:50 +0000 (08:39 +0100)
Java 8 introduced this method, which bypasses array cloning done
by getParameterTypes(), making it more efficient. Take advantage
of it.

Change-Id: I130a58c8ca667e57ae29c99abdd8066d8ca7dbd7
JIRA: MDSAL-398
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 921a278624080bc7a2930fb01f53db8b8f1e87c8)

opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/RpcServiceAdapter.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java

index 4d3dcab8b83404a410f2300b1ebe4d9e378221e5..2b250e66be1d75d752db28dfd2158ad94df1966a 100644 (file)
@@ -90,7 +90,7 @@ class RpcServiceAdapter implements InvocationHandler {
 
         final RpcInvocationStrategy rpc = rpcNames.get(method);
         if (rpc != null) {
-            if (method.getParameterTypes().length == 0) {
+            if (method.getParameterCount() == 0) {
                 return rpc.invokeEmpty();
             }
             if (args.length != 1) {
@@ -108,11 +108,11 @@ class RpcServiceAdapter implements InvocationHandler {
     private static boolean isObjectMethod(final Method m) {
         switch (m.getName()) {
             case "toString":
-                return m.getReturnType().equals(String.class) && m.getParameterTypes().length == 0;
+                return m.getReturnType().equals(String.class) && m.getParameterCount() == 0;
             case "hashCode":
-                return m.getReturnType().equals(int.class) && m.getParameterTypes().length == 0;
+                return m.getReturnType().equals(int.class) && m.getParameterCount() == 0;
             case "equals":
-                return m.getReturnType().equals(boolean.class) && m.getParameterTypes().length == 1 && m
+                return m.getReturnType().equals(boolean.class) && m.getParameterCount() == 1 && m
                         .getParameterTypes()[0] == Object.class;
             default:
                 return false;
index e8fce52d8205d6550ad666bdf22271e72a177c53..d1247c05c73bc3223a7fe16f24eab2bdc0f4bc16 100644 (file)
@@ -160,7 +160,7 @@ public class DatastoreContextIntrospector {
             // constructors but the one we want has the bean ConstructorProperties annotation.
             for (final Constructor<?> ctor: propertyType.getConstructors()) {
                 final ConstructorProperties ctorPropsAnnotation = ctor.getAnnotation(ConstructorProperties.class);
-                if (ctor.getParameterTypes().length == 1 && ctorPropsAnnotation != null) {
+                if (ctor.getParameterCount() == 1 && ctorPropsAnnotation != null) {
                     findYangTypeGetter(propertyType, ctorPropsAnnotation.value()[0]);
                     CONSTRUCTORS.put(propertyType, ctor);
                     break;