java反射 获取Object属性值
项目场景:
一个添加员工信息的功能,通过shiro获取当前登录用户的信息,取出其中的createId的值,在通过set方法写入。
问题描述:
通过获取的登录用户的信息发现,它是一个Object对象,然后我就想取出其中我想要的id值,可是却不会,然后经过我多方百度查询,最终得以解决。
解决方案:
通过java反射可以获取属性值,其中多次遇见某个属性值是“private”的报错情况,用以下方法得以解决。
//获取登录用户信息
Object object=SecurityUtils.getSubject().getSession().getAttribute(Constants.SESSION_USER);
//获取当前对象(object)的类
Class jClass=object.getClass();
//获取所需的属性值
PropertyDescriptor pd = new PropertyDescriptor("id",jClass);
//获得读取属性值的方法
Method getMethod = pd.getReadMethod();
//读取属性值
Object o = getMethod.invoke(object);
//设置并转换数据类型
emp.setCreateId(Math.toIntExact((Long) o));
//调用set方法
emp.setIsDelete(0);
//插入添加的数据
empService.insert(emp);
大致就是以上的代码块,新手小白,刚上路,有许多知识不清楚,还望大家多多指点一下我,谢谢啦。
从以下的博文中拓展了关于这方面的知识,特别感谢:
1.java反射–PropertyDescriptor类:(属性描述器)、Introspector类
2.JAVA 反射获得object对象对应的实体类的属性、及属性值
3.使用java中的反射获得object对象的属性值
4.Object get["属性"]; java反射技术通过对象和属性名得到属性值
java反射 获取Object属性值相关推荐
- 关于Java反射获取静态属性值的方式
先随意创建一个用户类: /*** @author 晚风* @since 2022/3/14 11:31*/ public class User {private String name;public ...
- 利用java反射机制修改属性值
利用java反射机制修改属性值 本文将介绍如何利用java反射机制修改属性值,废话不多说,直接上代码 1.新建一个实体类,添加属性test以及获取属性值的方法getTest() public clas ...
- java获取object属性值_java反射获取一个object属性值代码解析
有些时候你明明知道这个object里面是什么,但是因为种种原因,你不能将它转化成一个对象,只是想单纯地提取出这个object里的一些东西,这个时候就需要用反射了. 假如你这个类是这样的: privat ...
- java高效获取内部类属性值_Java高级特性:内部类
内部类是什么 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和 ...
- java 反射获取方法属性和方法调用
第一步当然是了解反射是什么东西: 指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法.这种动态获取信息,以及动态调用对象方法的功能叫java语 ...
- java 反射父类私有属性值_如何在Java中通过反射访问父类的父类的私有字段? - java...
在一个API中,我使用的是一个抽象类(A类),该类具有一个私有字段(A.privateField). B类在API中扩展了A类. 我需要扩展B类的实现,即C类,但是我需要A类的privateField ...
- Java获取Object属性值
做了一个拦截参数的需求,需要获取普通参数和对象参数 参数是Object类型,Object[] paramValues = pjp.getArgs(); 1.获取普通参数 for(int i=0;i&l ...
- java object 获取属性值_Java获取Object属性值
[我给Unity官方视频教程做中文字幕]beginner Graphics – Lessons系列之材质了解Materials [我给Unity官方视频教程做中文字幕]beginner Graphic ...
- java反射获取子类或者父类的属性值
方法介绍 1.获取所有属性 private static List<Field> getAllField(Class<?> class1){List<Field> ...
最新文章
- 软件开发模式对比(瀑布、迭代、螺旋、敏捷)
- ubuntu16.04搞出百度的方法
- 执行import xlrd,报错ModuleNotFoundError: No module named 'xlrd'
- 面试题 10.01. 合并排序的数组
- python通信原理_python入门第三十三天--网络通信原理(补充)
- Helm 3 完整教程(十):Helm 函数讲解(4)加密函数、编码和解码函数
- torch安装及CUDA和torch版本的对应关系
- truffle和remix区别
- excel题库做成刷题得html,实例教你制作简易的Excel出题库,送给在一直忙碌的你!...
- 手机上最好用的五笔输入法_【收藏】如果在电脑和手机上使用日语输入法
- flask文件上传 flask-uploads
- Enterprise Architect 15 使用指南
- 你在日常的测试工作中遇到过哪些困境呢?
- Python基础语法——基础语法、变量
- kali linux 最新下载,kali新版本下载,Kali Linux 2019.4 开放下载
- 社工工具包 SEToolkit
- 卡马克快速平方根倒数
- Python获取股票机构调研数据
- srg2220_华为SRG2200路由器系列配置说明
- java毕业设计大学生创业众筹系统(附源码、数据库)
热门文章
- 中丹学院计算机,SCEE
- STM32学习心得(第一天)
- java编程实现给微信发送消息
- Spring Boot缓存管理
- 自然语言处理—初始自然语言处理技术—自然语言处理的前置技术
- git clone出现 fatal: unable to access ‘https://github.com/...
- 数据集标注文件JSON格式简析
- 软件本地化(国际化)步骤
- Dubbo源码解析 —— Zookeeper 订阅
- 如何快捷下载音乐,视频,音频,图片