From dcc4045371c068dc48afc8c311b226f86676c2f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Ju=C3=A1rez?= Date: Sun, 7 May 2017 19:54:23 -0500 Subject: [PATCH] BAEL-870 How to Call a Method During Runtime Using Reflection (#1806) --- .../java/com/baeldung/java/reflection/Operations.java | 8 ++++---- .../com/baeldung/java/reflection/OperationsUnitTest.java | 8 ++++---- .../reflection/operations/MoreOperationsUnitTest.java | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/core-java/src/main/java/com/baeldung/java/reflection/Operations.java b/core-java/src/main/java/com/baeldung/java/reflection/Operations.java index dd11a9bcee..da4b479b02 100644 --- a/core-java/src/main/java/com/baeldung/java/reflection/Operations.java +++ b/core-java/src/main/java/com/baeldung/java/reflection/Operations.java @@ -2,19 +2,19 @@ package com.baeldung.java.reflection; public class Operations { - public double sum(int a, double b) { + public double publicSum(int a, double b) { return a + b; } - public static double multiply(float a, long b) { + public static double publicStaticMultiply(float a, long b) { return a * b; } - private boolean and(boolean a, boolean b) { + private boolean privateAnd(boolean a, boolean b) { return a && b; } - protected int max(int a, int b) { + protected int protectedMax(int a, int b) { return a > b ? a : b; } diff --git a/core-java/src/test/java/com/baeldung/java/reflection/OperationsUnitTest.java b/core-java/src/test/java/com/baeldung/java/reflection/OperationsUnitTest.java index 71ee466afd..217910bffd 100644 --- a/core-java/src/test/java/com/baeldung/java/reflection/OperationsUnitTest.java +++ b/core-java/src/test/java/com/baeldung/java/reflection/OperationsUnitTest.java @@ -16,7 +16,7 @@ public class OperationsUnitTest { @Test(expected = IllegalAccessException.class) public void givenObject_whenInvokePrivateMethod_thenFail() throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { - Method andPrivateMethod = Operations.class.getDeclaredMethod("and", boolean.class, boolean.class); + Method andPrivateMethod = Operations.class.getDeclaredMethod("privateAnd", boolean.class, boolean.class); Operations operationsInstance = new Operations(); Boolean result = (Boolean) andPrivateMethod.invoke(operationsInstance, true, false); @@ -26,7 +26,7 @@ public class OperationsUnitTest { @Test public void givenObject_whenInvokePrivateMethod_thenCorrect() throws Exception { - Method andPrivatedMethod = Operations.class.getDeclaredMethod("and", boolean.class, boolean.class); + Method andPrivatedMethod = Operations.class.getDeclaredMethod("privateAnd", boolean.class, boolean.class); andPrivatedMethod.setAccessible(true); Operations operationsInstance = new Operations(); @@ -37,7 +37,7 @@ public class OperationsUnitTest { @Test public void givenObject_whenInvokePublicMethod_thenCorrect() throws Exception { - Method sumInstanceMethod = Operations.class.getMethod("sum", int.class, double.class); + Method sumInstanceMethod = Operations.class.getMethod("publicSum", int.class, double.class); Operations operationsInstance = new Operations(); Double result = (Double) sumInstanceMethod.invoke(operationsInstance, 1, 3); @@ -47,7 +47,7 @@ public class OperationsUnitTest { @Test public void givenObject_whenInvokeStaticMethod_thenCorrect() throws Exception { - Method multiplyStaticMethod = Operations.class.getDeclaredMethod("multiply", float.class, long.class); + Method multiplyStaticMethod = Operations.class.getDeclaredMethod("publicStaticMultiply", float.class, long.class); Double result = (Double) multiplyStaticMethod.invoke(null, 3.5f, 2); diff --git a/core-java/src/test/java/com/baeldung/java/reflection/operations/MoreOperationsUnitTest.java b/core-java/src/test/java/com/baeldung/java/reflection/operations/MoreOperationsUnitTest.java index a7b5df01dd..2fe0a54664 100644 --- a/core-java/src/test/java/com/baeldung/java/reflection/operations/MoreOperationsUnitTest.java +++ b/core-java/src/test/java/com/baeldung/java/reflection/operations/MoreOperationsUnitTest.java @@ -16,17 +16,17 @@ public class MoreOperationsUnitTest { @Test(expected = IllegalAccessException.class) public void givenObject_whenInvokeProtectedMethod_thenFail() throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { - Method maxProtectedMethod = Operations.class.getDeclaredMethod("max", int.class, int.class); + Method maxProtectedMethod = Operations.class.getDeclaredMethod("protectedMax", int.class, int.class); Operations operationsInstance = new Operations(); Integer result = (Integer) maxProtectedMethod.invoke(operationsInstance, 2, 4); - System.out.println("result = " + result); + assertThat(result, equalTo(4)); } @Test public void givenObject_whenInvokeProtectedMethod_thenCorrect() throws Exception { - Method maxProtectedMethod = Operations.class.getDeclaredMethod("max", int.class, int.class); + Method maxProtectedMethod = Operations.class.getDeclaredMethod("protectedMax", int.class, int.class); maxProtectedMethod.setAccessible(true); Operations operationsInstance = new Operations();