当前位置: 编程技术>java/j2ee
Java 采用反射获取class属性值的实现代码
来源: 互联网 发布时间:2014-10-27
本文导语: 原理:Java的反射能够获取属性的名称,然后通过invoke调用类的某个方法。比如有个属性叫userName,这个类写了个方法叫getUserName,通过invoke调用getUserName这个方法。代码如下 代码如下:import java.lang.reflect.Field;import java.lang.reflect.Method...
原理:Java的反射能够获取属性的名称,然后通过invoke调用类的某个方法。
比如有个属性叫userName,这个类写了个方法叫getUserName,通过invoke调用getUserName这个方法。
代码如下
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
public class ParameterBase
{
/**
* Get Class field and value Map
* @return
*/
public Map getClassInfo()
{
Map fieldsAndValues = new HashMap();
Field [] fields = this.getClass().getDeclaredFields();
for(int i=0; i< fields.length; i++)
{
Field f = fields[i];
String value = getFieldValue(this ,f.getName()).toString();
fieldsAndValues.put(f.getName(),value);
}
return fieldsAndValues;
}
private String getFieldValue(Object owner, String fieldName)
{
return invokeMethod(owner, fieldName,null).toString();
}
/**
*
* 执行某个Field的getField方法
*
* @param owner 类
* @param fieldName 类的属性名称
* @param args 参数,默认为null
* @return
*/
private Object invokeMethod(Object owner, String fieldName, Object[] args)
{
Class
Java 反射封装库 Mirror
高手请进:JAVA中的“反射”是什么?
java增强开发类,反射工具 absir-core
关于JAVA反射实现的问题
请问java.lang.reflect这个包(反射)的主要用途?java.lang.reflect.Method这个类是干什么用的?
java反射机制示例
java反射使用示例分享
java根据方法名称取得反射方法的参数类型示例
Java反射学习 getClass()函数应用
java利用反射实现动态代理示例
java反射android的r文件的示例
Java反射工具包 reflectutils
Java 反射之私有字段和方法详细介绍
Java反射机制(Reflection)浅析
java类加载器和类反射使用示例
java反射实现javabean转json实例代码
java反射机制示例详解
java反射机制实战示例分享
java反射技术与类使用示例
比如有个属性叫userName,这个类写了个方法叫getUserName,通过invoke调用getUserName这个方法。
代码如下
代码如下:
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
public class ParameterBase
{
/**
* Get Class field and value Map
* @return
*/
public Map getClassInfo()
{
Map fieldsAndValues = new HashMap();
Field [] fields = this.getClass().getDeclaredFields();
for(int i=0; i< fields.length; i++)
{
Field f = fields[i];
String value = getFieldValue(this ,f.getName()).toString();
fieldsAndValues.put(f.getName(),value);
}
return fieldsAndValues;
}
private String getFieldValue(Object owner, String fieldName)
{
return invokeMethod(owner, fieldName,null).toString();
}
/**
*
* 执行某个Field的getField方法
*
* @param owner 类
* @param fieldName 类的属性名称
* @param args 参数,默认为null
* @return
*/
private Object invokeMethod(Object owner, String fieldName, Object[] args)
{
Class