java利用反射机制如何实现获取对象的值

  介绍

本篇文章给大家分享的是有关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利用反射机制如何实现获取对象的值