From 3caa9fdbbe72193e9c1d25fb316ec74f91f68e7b Mon Sep 17 00:00:00 2001 From: Kai Yuan Date: Sun, 21 Nov 2021 20:25:21 +0100 Subject: [PATCH] add invoking static methods (#11439) --- .../access/staticmethods/GreetingAndBye.java | 12 ++++++++ .../GreetingAndByeClassUnitTest.java | 28 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 core-java-modules/core-java-reflection-2/src/main/java/com/baeldung/reflection/access/staticmethods/GreetingAndBye.java create mode 100644 core-java-modules/core-java-reflection-2/src/test/java/com/baeldung/reflection/check/abstractclass/GreetingAndByeClassUnitTest.java diff --git a/core-java-modules/core-java-reflection-2/src/main/java/com/baeldung/reflection/access/staticmethods/GreetingAndBye.java b/core-java-modules/core-java-reflection-2/src/main/java/com/baeldung/reflection/access/staticmethods/GreetingAndBye.java new file mode 100644 index 0000000000..471ed1ee5b --- /dev/null +++ b/core-java-modules/core-java-reflection-2/src/main/java/com/baeldung/reflection/access/staticmethods/GreetingAndBye.java @@ -0,0 +1,12 @@ +package com.baeldung.reflection.access.staticmethods; + +public class GreetingAndBye { + + public static String greeting(String name) { + return String.format("Hey %s, nice to meet you!", name); + } + + private static String goodBye(String name) { + return String.format("Bye %s, see you next time.", name); + } +} diff --git a/core-java-modules/core-java-reflection-2/src/test/java/com/baeldung/reflection/check/abstractclass/GreetingAndByeClassUnitTest.java b/core-java-modules/core-java-reflection-2/src/test/java/com/baeldung/reflection/check/abstractclass/GreetingAndByeClassUnitTest.java new file mode 100644 index 0000000000..da82d2370c --- /dev/null +++ b/core-java-modules/core-java-reflection-2/src/test/java/com/baeldung/reflection/check/abstractclass/GreetingAndByeClassUnitTest.java @@ -0,0 +1,28 @@ +package com.baeldung.reflection.check.abstractclass; + +import com.baeldung.reflection.access.staticmethods.GreetingAndBye; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +class GreetingAndByeUnitTest { + + @Test + void givenPublicStaticMethod_whenCallWithReflection_thenReturnExpectedResult() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + Class clazz = GreetingAndBye.class; + Method method = clazz.getMethod("greeting", String.class); + Object result = method.invoke(null, "Eric"); + Assertions.assertEquals("Hey Eric, nice to meet you!", result); + } + + @Test + void givenPrivateStaticMethod_whenCallWithReflection_thenReturnExpectedResult() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + Class clazz = GreetingAndBye.class; + Method method = clazz.getDeclaredMethod("goodBye", String.class); + method.setAccessible(true); + Object result = method.invoke(null, "Eric"); + Assertions.assertEquals("Bye Eric, see you next time.", result); + } +}