您的位置:首页 > 编程语言 > Java开发

java类型反射

2012-08-21 20:41 295 查看
private Object setValueFromJson(JSONObject jsonObj, Object object)
throws IllegalArgumentException, IllegalAccessException,
InvocationTargetException, ParseException {
if (jsonObj == null || object == null || jsonObj.length() == 0) {
return null;
}
Method[] methods = object.getClass().getMethods();
for (Method m : methods) {
String mName = m.getName();

if (!mName.startsWith("set")) {
continue;
}
String firstLetter = mName.substring(3, 4);
String otherLetter = mName.substring(4);

String name = firstLetter.toLowerCase() + otherLetter;
String value = jsonObj.optString(name);
// 从JSON中解析出数据
if (value.trim().equals("")) {
continue;
}

Class[] parasClass = m.getParameterTypes();

if (parasClass.length != 1) {
continue;
}
// 判断方法参数类型
String paraType = parasClass[0].getName();
if (paraType.equals("java.lang.String")) {
m.invoke(object, value);
} else if (paraType.equals("java.lang.Integer")) {
m.invoke(object, Integer.parseInt(value));
} else if (paraType.equals("java.math.Bigdecimal")) {
m.invoke(object, new BigDecimal(value));
}
}
return object;
}


宝贝网址:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: