Use Method.getParameterCount() 77/77877/2
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 11:01:24 +0000 (12:01 +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>
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 a9b1cc5cc49c08313e828b7c4f2758dd61710e25..51a4280f5cb895de78b77f427e07b7f9b326f110 100644 (file)
@@ -98,7 +98,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) {
@@ -116,11 +116,11 @@ class RpcServiceAdapter implements InvocationHandler {
     private static boolean isObjectMethod(final Method method) {
         switch (method.getName()) {
             case "toString":
-                return method.getReturnType().equals(String.class) && method.getParameterTypes().length == 0;
+                return method.getReturnType().equals(String.class) && method.getParameterCount() == 0;
             case "hashCode":
-                return method.getReturnType().equals(int.class) && method.getParameterTypes().length == 0;
+                return method.getReturnType().equals(int.class) && method.getParameterCount() == 0;
             case "equals":
-                return method.getReturnType().equals(boolean.class) && method.getParameterTypes().length == 1 && method
+                return method.getReturnType().equals(boolean.class) && method.getParameterCount() == 1 && method
                         .getParameterTypes()[0] == Object.class;
             default:
                 return false;
index 0f7d80bfde1f08e3c1893d9e74d0d52b565f53bb..579e096af77572393ad1e1f0d07439cd16b60210 100644 (file)
@@ -132,7 +132,8 @@ public class DatastoreContextIntrospector {
      * Processes a property defined on the DataStoreProperties interface.
      */
     @SuppressWarnings("checkstyle:IllegalCatch")
-    private static void processDataStoreProperty(final String name, final Class<?> propertyType, Method readMethod) {
+    private static void processDataStoreProperty(final String name, final Class<?> propertyType,
+            final Method readMethod) {
         Preconditions.checkArgument(BUILDER_SETTERS.containsKey(name), String.format(
                 "DataStoreProperties property \"%s\" does not have corresponding setter in DatastoreContext.Builder",
                 name));
@@ -167,7 +168,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;