介绍
本篇文章给大家分享的是有关java利用反射机制如何实现获取对象的值,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
通过反射机制得到对象中的属性和属性值在对象中私人没问题,在别的类中有时会报异常。下面的例子是在本对象中
/* * *引擎实体。@author MyEclipse持久化工具 */公共java类引擎实现。可序列化的{//字段 私人长engineId; 私人字符串engineName; 私人字符串engineType;//构造函数/* *默认构造函数*/公共引擎(){ }/* *最小构造函数*/公共引擎(长engineId) { 这一点。engineId=engineId; } engineName公共引擎(字符串,字符串engineType) { 这一点。engineName=engineName; 这一点。engineType=engineType; }/* *构造函数*/engineName公共引擎(长engineId字符串,字符串engineType) { 这一点。engineId=engineId; 这一点。engineName=engineName; 这一点。engineType=engineType; }//属性访问器 公共长getEngineId () { 返回this.engineId; } 公共空间setEngineId(长engineId) { 这一点。engineId=engineId; } 公共字符串getEngineName () { 返回this.engineName; } 公共空间setEngineName(字符串engineName) { 这一点。engineName=engineName; } 公共字符串getEngineType () { 返回this.engineType; } 公共空间setEngineType(字符串engineType) { 这一点。engineType=engineType; } 公共静态void main (String [] args){抛出异常 引擎m=新引擎(“汽车“,“发动机“); 类clazz=m.getClass (); 场[]f=clazz.getDeclaredFields (); String [] name=field2Name (f); 对象[]值=https://www.yisu.com/zixun/field2Value (f,米); showNameAndValue(名称,值); } 公共静态孔隙showNameAndValue (String[]的名字,对象[]值){ for (int i=0;我如果想调用私人的属性的属性值,则要调用他的得到方法了具体做法是:
把field2Value方法改为如下方式,这样在别的类中也可以得到私人的属性值了
公共静态对象[]field2Value(字段[]字段对象o){抛出异常 对象[]值=新对象(fields.length); 类classType=o.getClass (); for (int i=0;我& lt;fields.length;我+ +){ 字符串字段名=字段[我]. getname (); 字符串firstLetter=字段名。substring (0, 1) .toUpperCase (); 字符串getMethodName=癵et"+ firstLetter + fieldName.substring (1); getMethod=classType方法。getMethod (getMethodName新类[]{}); [我]=getMethod值。调用(o,新对象[]{}); } 返回值; }以上就是java利用反射机制如何实现获取对象的值,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
java利用反射机制如何实现获取对象的值