Java反射机制详解——对象的动态操作
Java反射机制是Java语言提供的一种能力,使得程序在运行时可以查看类信息、调用方法或者改变字段值等动态行为。
以下是Java反射机制中关于对象动态操作的几个关键点:
- 获取对象:通过类名或对象实例创建一个Class对象,然后使用这个Class对象的newInstance()方法来生成对象实例。
Class<?> clazz = MyClass.class;
Object obj = clazz.newInstance();
- 反射方法调用:通过Method对象,可以获取到一个类中的某个方法。然后可以通过invoke(Object… args)方法调用该方法。
Method method = clazz.getMethod("myMethod", String.class));
String param = "hello";
method.invoke(obj, param);
- 改变字段值:Field对象表示类中的某个字段,包括私有、保护等访问级别。通过get(Object obj)方法获取到字段值,然后使用set(Object obj, Object value))方法设置新的字段值。
Field field = clazz.getDeclaredField("myField");
field.setAccessible(true); // 需要手动开启访问权限
String oldValue = (String) field.get(obj);
field.set(obj, "newValue"); // 设置新的字段值
通过Java反射机制,我们可以实现对对象的动态操作,这种能力在许多场景下都非常有用。
还没有评论,来说两句吧...