Java反射API的深入理解及实践示例
反射是Java中一个强大的工具,它允许程序在运行时检查类、字段和方法等信息。以下是对Java反射API的深入理解和一些实践示例:
- 创建对象:
```java
// 通过Class获取Class对象
Class<?> clazz = Class.forName(“com.example.MyClass”); // 假设MyClass是我们要创建的对象
// 创建Object实例
Object obj = clazz.newInstance(); // 这里是newInstance方法,用于创建新的对象实例
2. **获取类信息**:
```java
// 获取类名
String className = clazz.getName();
// 获取类的所有父类
Class<?>[] superClasses = clazz.getSuperclass();
// 获取类的所有已知的实现接口
Class<?>[] interfaces = clazz.getInterfaces();
- 访问字段和方法:
```java
// 访问字段
Field field = clazz.getDeclaredField(“myField”); // getDeclaredField用于获取指定名称的私有字段
// 设置字段值
field.setAccessible(true); // 需设置为可访问,否则无法修改私有字段
field.setValue(obj, “new value”)); // setValue用于设置指定对象的指定字段值
// 访问方法
Method method = clazz.getDeclaredMethod(“myMethod”, String.class)); // getDeclaredMethod用于获取指定名称的方法(包括构造函数)
// 调用方法
method.invoke(obj, “param value”)); // invoke用于调用对象的指定方法,传入参数
```
以上就是Java反射API的深入理解及实践示例。在实际编程中,反射可以用来动态创建类、获取和修改对象属性等操作。
还没有评论,来说两句吧...