JAVA 反射获取bean
时间: 2023-10-23 10:11:46 浏览: 42
Java反射可以通过Class对象获取类的属性、方法、构造函数等信息,并且可以在运行时动态地调用这些属性、方法、构造函数等。通过反射,我们也可以获取某个对象的属性值、调用其方法等。
下面是一个获取bean属性值的示例代码:
```java
// 获取类对象
Class<?> clazz = Class.forName("com.example.Bean");
// 创建对象
Object obj = clazz.newInstance();
// 获取属性值
Field field = clazz.getDeclaredField("propertyName");
field.setAccessible(true);
Object value = field.get(obj);
```
其中,"com.example.Bean"是你需要获取属性值的bean类的全限定名,"propertyName"是你需要获取的属性名,可以替换成你自己的属性名。需要注意的是,如果属性是私有的,需要先调用`field.setAccessible(true)`使其可访问。
除了获取属性值,你还可以通过反射调用bean的方法。下面是一个示例代码:
```java
// 获取类对象
Class<?> clazz = Class.forName("com.example.Bean");
// 创建对象
Object obj = clazz.newInstance();
// 获取方法
Method method = clazz.getDeclaredMethod("methodName", parameterTypes);
method.setAccessible(true);
// 调用方法
Object result = method.invoke(obj, arguments);
```
其中,"methodName"是你需要调用的方法名,"parameterTypes"和"arguments"是方法的参数类型和参数值,可以替换成你自己的参数类型和参数值。
需要注意的是,如果方法是私有的,需要先调用`method.setAccessible(true)`使其可访问。同时,调用方法时需要注意方法的返回值类型,可以根据需要进行类型转换。