我有一个这样的对象:
public class RM {
private int id;
private String name;
private String being_in_force_dt;
private String modify_dt;
private AREA AREA;
private String vehicle;
}
我在xml中的这个对象的日期,现在我有一个问题,我可以将一个值放到字段中作为示例名称,当我有一个:
String attName = xpp.getAttributeName(i); // here String = name
xpp.getAttributeValue(i) // and here is a value
我这样做了:
if(attName.equals("id"))
rm.setId(Integer.parseInt(xpp.getAttributeValue(i)));
但也许是更好的解决方案
答案 0 :(得分:1)
一种可能的解决方案是使用HashMap
作为属性。
不完全是最通用的方法,但肯定很容易实现:
rm = new RM();
rm.setAttribute(xpp.getAttributeName(i), xpp.getAttributeValue(i));
然后是:
String
但是,这会对所有值使用RM
。这可能没问题,因为你可能无论如何都要从XML中获取字符串。然后由getAttribute()
类的用户决定如何处理通过//to fetch all the users of firebase Auth app
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersdRef = rootRef.child("users");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.child("name").getValue(String.class);
Log.d("TAG", name);
array.add(name);
}
ArrayAdapter<String> adapter = new ArrayAdapter(OtherUsersActivity.this, android.R.layout.simple_list_item_1, array);
mListView.setAdapter(adapter);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
usersdRef.addListenerForSingleValueEvent(eventListener);
}
检索到的值。
答案 1 :(得分:1)
你可以使用Java Reflection,这不是一个漂亮的解决方案,但有效:
RM obj = new RM();
Field f = obj.getClass().getDeclaredField("id");
f.setAccessible(true);
f.set(obj, 1);
Assert.assertEquals(1, obj.getId());
我建议你阅读JAXB。