給你..它是一個動態的,所以你可以使用它的任何對象..我使用的是反射
public static void main(String[] args) {
Person person = new Person("Ali", "[email protected]");
try {
System.out.println(getObjectNameValuePairs(person));
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static ArrayList<NameValuePair> getObjectNameValuePairs(Object obj) throws IllegalArgumentException, IllegalAccessException {
ArrayList<NameValuePair> list = new ArrayList<NameValuePair>();
for (Field field : obj.getClass().getDeclaredFields()) {
field.setAccessible(true); // if you want to modify private fields
NameValuePair nameValuePair = new NameValuePair();
nameValuePair.setName(field.getName());
nameValuePair.setValue(field.get(obj));
list.add(nameValuePair);
}
return list;
}
這個輸出是
[[name:Ali], [email:[email protected]]]
考慮到的NameValuePair實現
public class NameValuePair {
private String name;
private Object value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
@Override
public String toString() {
return "["+ name + ":" + value + "]";
}
}
我希望這可以幫助!
您的意思是作爲'ABC'的名稱和值爲'abc @ xyz.com' – 2014-11-14 13:06:23
如果您想要名稱值對,則應該使用散列表。你的鑰匙可以是名字和價值可以是電子郵件?或者你的密鑰可能是名字,你的價值(對象)可能是Person ... – brso05 2014-11-14 13:07:15