Java 泛型方法中获取属性值并转换为对应的类型
时间: 2023-08-06 14:09:39 浏览: 150
可以使用Java反射机制来实现泛型方法中获取属性值并转换为对应的类型。具体实现方式如下所示:
```java
public class ReflectUtil {
/**
* 获取对象属性值并转换为指定类型
* @param obj 对象
* @param fieldName 属性名
* @param clazz 目标类型
* @param <T> 泛型类型
* @return 属性值
*/
public static <T> T getFieldValue(Object obj, String fieldName, Class<T> clazz) {
try {
Field field = obj.getClass().getDeclaredField(fieldName);
field.setAccessible(true);
Object value = field.get(obj);
return clazz.cast(value);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
```
使用示例:
```java
public class Test {
public static void main(String[] args) {
UserInfo userInfo = new UserInfo();
userInfo.setName("张三");
userInfo.setAge(18);
String name = ReflectUtil.getFieldValue(userInfo, "name", String.class);
Integer age = ReflectUtil.getFieldValue(userInfo, "age", Integer.class);
System.out.println("姓名:" + name); // 姓名:张三
System.out.println("年龄:" + age); // 年龄:18
}
}
```
在这个示例中,我们使用了反射机制来获取 `UserInfo` 对象的 `name` 和 `age` 属性值,并将其转换为了对应的类型 `String` 和 `Integer`。
阅读全文