读书人

如何判断一个对象里的属性是否都为空的

发布时间: 2013-01-23 10:44:49 作者: rapoo

怎么判断一个对象里的属性是否都为空的
怎么判断一个对象里的属性是否都为空的,或者判断该对象是否是一个实体!
[解决办法]

引用:
怎么判断一个对象里的属性是否都为空的,或者判断该对象是否是一个实体!

我明白你的意思,这得根据不同类型来校验:

//前面省略,直接从类型开始,根据类型来处理
//获取Field的类型
Class<?> type = class.getDeclaredField(item_name).getType();
//判断Field类型
if(type == String.class){
// 校验是否为null
}else if(type == int.class){
// 校验是否为0
}else if(……) {
// …… 下面都差不多,在此不多写了

[解决办法]
引用:
引用:怎么判断一个对象里的属性是否都为空的,或者判断该对象是否是一个实体!
我明白你的意思,这得根据不同类型来校验:
Java code?12345678910 //前面省略,直接从类型开始,根据类型来处理 //获取Field的类型 ……


++
完善下:


/**
*
* 获取对象属性,返回一个字符串数组
*
* @param o对象
* @return String[] 字符串数组
*/

private static String[] getFiledName(Object o) {
try {
Field[] fields = o.getClass().getDeclaredFields();
String[] fieldNames = new String[fields.length];
for (int i = 0; i < fields.length; i++) {
fieldNames[i] = fields[i].getName();
}
return fieldNames;
} catch (SecurityException e) {
e.printStackTrace();
System.out.println(e.toString());
}
return null;

}

/**
*
* 使用反射根据属性名称获取属性值
*
*
*
* @param fieldName
* 属性名称
*
* @param o
* 操作对象
*
* @return Object 属性值
*/

public static 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) {
System.out.println("属性不存在");
return null;
}
}

读书人网 >Java Web开发

热点推荐