通过反射执行对象的get方法,避免强制类型转换
代码如下
通过反射执行对象的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
是类型转换的警告,如何修改代码修复这个警告,不是屏蔽,是修复
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
试一下用instanceof判断后,再强转把。