反射配对儿XML
来源:互联网 发布:js window发送url 编辑:程序博客网 时间:2024/05/23 19:17
private void setQuake(XmlPullParser xpp) throws Exception {
try {
Class<?> c = Class.forName(Quake.class.getName());
Field[] fs = c.getDeclaredFields();
final Quake quake = (Quake)c.newInstance();
Method m = null;
for (Field field : fs) {
// 属性名
String methodName = field.getName();
if (methodName.equals(xpp.getName())) {
String value = xpp.nextText();
// 获得每个属性的set方法
if (field.getGenericType().toString().equals("class java.util.Date")) {
m = c.getMethod("set" + getMethodName(methodName),
java.util.Date.class);
m.invoke(quake, Date.parse(value));
} else if (field.getGenericType().toString()
.equals("class java.lang.String")) {
m = c.getMethod("set" + getMethodName(methodName), String.class);
m.invoke(quake, value);
} else if (field.getGenericType().toString()
.equals("class android.location.Location")) {
m = c.getMethod("set" + getMethodName(methodName), Location.class);
m.invoke(quake, value);
} else if (field.getGenericType().toString().equals("double")) {
m = c.getMethod("set" + getMethodName(methodName), double.class);
m.invoke(quake, Double.parseDouble(value));
}
Log.i("info",m.getName());
handler.post(new Runnable() {
@Override
public void run() {
addNewQuake(quake);
}
});
}
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
protected void addNewQuake(Quake quake) {
earthquakes.add(quake);
aa.notifyDataSetChanged();
}
private static String getMethodName(String fildeName) throws Exception {
byte[] items = fildeName.getBytes();
items[0] = (byte) ((char) items[0] - 'a' + 'A');
return new String(items);
}
try {
Class<?> c = Class.forName(Quake.class.getName());
Field[] fs = c.getDeclaredFields();
final Quake quake = (Quake)c.newInstance();
Method m = null;
for (Field field : fs) {
// 属性名
String methodName = field.getName();
if (methodName.equals(xpp.getName())) {
String value = xpp.nextText();
// 获得每个属性的set方法
if (field.getGenericType().toString().equals("class java.util.Date")) {
m = c.getMethod("set" + getMethodName(methodName),
java.util.Date.class);
m.invoke(quake, Date.parse(value));
} else if (field.getGenericType().toString()
.equals("class java.lang.String")) {
m = c.getMethod("set" + getMethodName(methodName), String.class);
m.invoke(quake, value);
} else if (field.getGenericType().toString()
.equals("class android.location.Location")) {
m = c.getMethod("set" + getMethodName(methodName), Location.class);
m.invoke(quake, value);
} else if (field.getGenericType().toString().equals("double")) {
m = c.getMethod("set" + getMethodName(methodName), double.class);
m.invoke(quake, Double.parseDouble(value));
}
Log.i("info",m.getName());
handler.post(new Runnable() {
@Override
public void run() {
addNewQuake(quake);
}
});
}
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
protected void addNewQuake(Quake quake) {
earthquakes.add(quake);
aa.notifyDataSetChanged();
}
private static String getMethodName(String fildeName) throws Exception {
byte[] items = fildeName.getBytes();
items[0] = (byte) ((char) items[0] - 'a' + 'A');
return new String(items);
}
0 0
- 反射配对儿XML
- XML&反射
- 配对
- 配对
- XML反射解析
- 反射方式解析xml
- Android UI : XML & 反射
- XML和反射
- Android开发之XML反射
- xml+反射dom解析案例
- XML解析 反射成为对象
- Java反射xml数据到类中
- 使用Java反射创建XML
- Android sdk 3.2蓝牙主动发起配对实例(通过类反射)
- 利用反射从 XML 构造 VO
- 利用反射机制实现XML-RPC
- 利用反射机制实现XML-RPC
- 用反射机制读取XML文件
- HDU5007Post Robot
- ubuntu+mysql在线安装与卸载
- Python学习笔记(五)Python动态类型和引用
- jquery源码
- Oracle SQL性能优化
- 反射配对儿XML
- opengl纹理
- hdu 5009 Paint Pearls 2014 ACM/ICPC Asia Regional Xi'an Online
- 数据库设计三范式
- RecyclerView
- 【最大流】POJ-1273 Drainage Ditches
- Leetcode【二叉树】:Binary Tree Postorder Traversal 题解(非递归解法),可以说是【二叉树】入门必须掌握
- HDU-5014 Number Sequence 最大异或和
- HDU 2188 悼念512汶川大地震遇难同胞——选拔志愿者(博弈论)