阅读量:0
通过Reflection API,我们可以动态地获取类的信息并调用其方法。下面是一个示例代码,展示如何使用Reflection API增强打印功能:
import java.lang.reflect.Method; public class ReflectionPrintExample { public static void main(String[] args) { Person person = new Person("Alice", 25); printObject(person); } public static void printObject(Object object) { Class<?> clazz = object.getClass(); System.out.println("Class name: " + clazz.getName()); Method[] methods = clazz.getMethods(); for (Method method : methods) { if (method.getName().startsWith("get")) { try { Object value = method.invoke(object); System.out.println(method.getName() + ": " + value); } catch (Exception e) { e.printStackTrace(); } } } } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } }
在上面的示例中,我们定义了一个Person
类,包含name
和age
两个属性,并提供了getName
和getAge
两个方法用于获取属性值。通过ReflectionPrintExample
类中的printObject
方法,我们可以动态地获取Person
对象的类信息并调用其get
方法来获取属性值,然后进行打印输出。
执行上面的代码,将会输出类名以及name
和age
属性的值。这种方式可以方便地增强打印功能,使得我们可以动态地打印任意对象的属性信息。