From 26f3664371dfcc140ba6d85a49a10cb3a9e7628c Mon Sep 17 00:00:00 2001 From: MohamedHelmyKassab <137485958+MohamedHelmyKassab@users.noreply.github.com> Date: Mon, 8 Apr 2024 18:39:32 +0200 Subject: [PATCH] This commit is related to BAEL-6298 (#16323) This commit aims to add three classes (Example, GenericExample, ReflectionExample). --- .../passclassasparameter/Example.java | 13 +++++++++++ .../passclassasparameter/GenericExample.java | 22 +++++++++++++++++++ .../ReflectionExample.java | 21 ++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/Example.java create mode 100644 core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/GenericExample.java create mode 100644 core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/ReflectionExample.java diff --git a/core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/Example.java b/core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/Example.java new file mode 100644 index 0000000000..0557e032ad --- /dev/null +++ b/core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/Example.java @@ -0,0 +1,13 @@ +package com.baeldung.passclassasparameter; + +public class Example { + public static void processClass(Class clazz) { + System.out.println("Processing class: " + clazz.getName()); + } + + public static void main(String[] args) { + processClass(String.class); + processClass(Integer.class); + processClass(Double.class); + } +} diff --git a/core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/GenericExample.java b/core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/GenericExample.java new file mode 100644 index 0000000000..c72d57743c --- /dev/null +++ b/core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/GenericExample.java @@ -0,0 +1,22 @@ +package com.baeldung.passclassasparameter; + +import java.util.ArrayList; +import java.util.List; + +public class GenericExample { + public static void printListElements(Class clazz, List list) { + System.out.println("Elements of " + clazz.getSimpleName() + " list:"); + for (T element : list) { + System.out.println(element); + } + } + + public static void main(String[] args) { + List stringList = new ArrayList<>(); + stringList.add("Java"); + stringList.add("is"); + stringList.add("awesome"); + + printListElements(String.class, stringList); + } +} diff --git a/core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/ReflectionExample.java b/core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/ReflectionExample.java new file mode 100644 index 0000000000..04c9dc3414 --- /dev/null +++ b/core-java-modules/core-java-lang-oop-others/src/main/java/com/baeldung/passclassasparameter/ReflectionExample.java @@ -0,0 +1,21 @@ +package com.baeldung.passclassasparameter; + +import java.lang.reflect.Method; + +public class ReflectionExample { + public static void processClass(Class clazz, String methodName) throws Exception { + Method method = clazz.getMethod(methodName); + Object instance = clazz.getDeclaredConstructor().newInstance(); + method.invoke(instance); + } + + public static void main(String[] args) throws Exception { + processClass(ReflectionTarget.class, "sayHello"); + } +} + +class ReflectionTarget { + public void sayHello() { + System.out.println("Hello, Reflection!"); + } +} \ No newline at end of file