反射获取对象的几种方法
时间: 2024-10-16 14:07:37 浏览: 13
反射是Java中的一种强大特性,它允许程序在运行时动态地检查、创建和修改类的信息,包括获取对象。有几种常见的方式可以使用反射获取对象:
1. **Class.forName()**:通过类名字符串创建Class对象,然后使用`newInstance()`方法创建对象实例。
```java
Class<?> clazz = Class.forName("com.example.MyClass");
Object obj = clazz.newInstance();
```
2. **Class.getConstructor()**:如果已知构造函数,可以直接获取并调用它的实例化方法。
```java
Constructor<?> constructor = clazz.getDeclaredConstructor(String.class);
obj = constructor.newInstance("example");
```
3. **Class.getMethod()**: 获取方法,然后用`invoke()`方法执行该方法。
```java
Method method = clazz.getMethod("myMethod", int.class);
method.invoke(obj, 123);
```
4. **Field.get()**: 如果需要获取对象的成员变量值,可以使用`get()`方法。
```java
Field field = clazz.getDeclaredField("myField");
field.setAccessible(true); // 让私有字段可见
Object value = field.get(obj);
```
阅读全文