下面是一个简单的Java反射示例,演示了如何使用反射机制获取类的信息并调用其方法:
import java.lang.reflect.Method;class MyClass {private String name;public void setName(String name) {this.name = name;}public String getName() {return name;}
}public class ReflectionExample {public static void main(String[] args) throws Exception {// 获取MyClass类的Class对象Class<?> clazz = MyClass.class;// 创建MyClass对象MyClass myClass = (MyClass) clazz.newInstance();// 获取setName方法Method setNameMethod = clazz.getDeclaredMethod("setName", String.class);// 调用setName方法设置属性值setNameMethod.invoke(myClass, "John");// 获取getName方法Method getNameMethod = clazz.getDeclaredMethod("getName");// 调用getName方法获取属性值String name = (String) getNameMethod.invoke(myClass);System.out.println("Name: " + name);}
}
该示例中,我们使用反射机制获取了MyClass类的Class对象,并通过Class对象的newInstance方法创建了MyClass对象。然后,我们使用getDeclaredMethod方法获取了MyClass类的setName和getName方法的Method对象,并通过invoke方法调用了这两个方法来设置和获取属性值。最后,我们打印了获取到的属性值。
请注意,反射机制是一种强大而灵活的技术,但也需要注意性能问题和潜在的安全风险。在实际开发中,应谨慎使用反射,以确保其正确性和可维护性。