加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

反射配对儿XML

发布时间:2020-12-15 22:24:57 所属栏目:百科 来源:网络整理
导读: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) { //
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); }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读