代码如下
通过反射执行对象的get方法,
public static <T> T invokeGetMethod(Object obj, String fieldName) {
Class<? extends Object> clazz = obj.getClass();
PropertyDescriptor pd = null;
try {
pd = new PropertyDescriptor(fieldName, clazz);
} catch (IntrospectionException e) {
log.error("执行new PropertyDescriptor(fieldName, clazz)出现错误");
e.printStackTrace();
}
Method readMethod = pd.getReadMethod();
if (readMethod != null) {
Object invoke = null;
try {
invoke = readMethod.invoke(obj);
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
}
return (T) invoke;
} else {
return null;
}
}
在代码
return (T) invoke;
有一个转换警告,内容如下
Type safety: Unchecked cast from Object to T
是类型转换的警告,如何修改代码修复这个警告,不是屏蔽,是修复
试一下用instanceof判断后,再强转把。