获得java类的所有属性
2016-09-08 14:26
246 查看
public static void main(String a[]){ Field[] parameters= ModelVo.class.getDeclaredFields(); for(Field f :parameters){ System.out.println(f.getName()); } }
另外一种方式
import java.lang.reflect.Field; public class GetField { public static void main(String[] args) { try { Class clazz = Class.forName("");//根据类名获得其对应的Class对象 写上你想要的类名就是了 注意是全名 如果有包的话要加上 比如java.Lang.String Field[] fields = clazz.getDeclaredFields();//根据Class对象获得属性 私有的也可以获得 for(Field f : fields) { System.out.println(f.getType().getName());//打印每个属性的类型名字 } } catch(Exception e) { e.printStackTrace(); } } }
/**
* 根据属性名获取属性值
* */
private Object getFieldValueByName(String fieldName, Object o) {
try {
String firstLetter = fieldName.substring(0, 1).toUpperCase();
String getter = "get" + firstLetter + fieldName.substring(1);
Method method = o.getClass().getMethod(getter, new Class[] {});
Object value = method.invoke(o, new Object[] {});
return value;
} catch (Exception e) {
log.error(e.getMessage(),e);
return null;
}
}
/**
* 获取属性名数组
* */
private String[] getFiledName(Object o){
Field[] fields=o.getClass().getDeclaredFields();
String[] fieldNames=new String[fields.length];
for(int i=0;i<fields.length;i++){
System.out.println(fields[i].getType());
fieldNames[i]=fields[i].getName();
}
return fieldNames;
}
/**
* 获取属性类型(type),属性名(name),属性值(value)的map组成的list
* */
private List getFiledsInfo(Object o){
Field[] fields=o.getClass().getDeclaredFields();
String[] fieldNames=new String[fields.length];
List list = new ArrayList();
Map infoMap=null;
for(int i=0;i<fields.length;i++){
infoMap = new HashMap();
infoMap.put("type", fields[i].getType().toString());
infoMap.put("name", fields[i].getName());
infoMap.put("value", getFieldValueByName(fields[i].getName(), o));
list.add(infoMap);
}
return list;
}
/**
* 获取对象的所有属性值,返回一个对象数组
* */
public Object[] getFiledValues(Object o){
String[] fieldNames=this.getFiledName(o);
Object[] value=new Object[fieldNames.length];
for(int i=0;i<fieldNames.length;i++){
value[i]=this.getFieldValueByName(fieldNames[i], o);
}
return value;
}
相关文章推荐
- 获得所有java System属性,实验所得,非文档拷贝,最全
- 获得所有系统属性java.lang.sysytem.getProperties
- 怎样获得一个HTML标记的所有属性和属性值
- C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值
- 获得通讯录中联系人的所有属性
- 获得通讯录中联系人的所有属性
- 获得通讯录中联系人的所有属性
- 获得一个命名空间中所有的类等,并给类属性付值。
- iPhone开发之获得通讯录中联系人的所有属性
- C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值
- (转载)获得通讯录中联系人的所有属性
- 获得通讯录中联系人的所有属性
- C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值
- Java代码获取所有系统属性
- 获得通讯录中联系人的所有属性
- 获得javascript中对象的所有方法名和属性名的方法
- 获得控件的所有属性及方法
- C# 获得当前文件夹内所有文件的名称,大小,类型,属性,日期的函数
- 获得通讯录中联系人的所有属性
- 获得通讯录中联系人的所有属性