假设我们有一个带有所有字符串参数的 Person 类对象:
Class Person {
String name;
String email;
}
Person p = new Person();
p.name = "ABC";
p.email = "abc@xyz.com";
我们如何将对象 p 转换为 NameValue Pair 的 ArrayList:
输出应该是 ArrayList<NameValuePair>
内容如下:
"name" : "ABC"
"email" : "abc@xyz.com"
最佳答案
给你..它是动态的,所以你可以将它用于任何对象..我正在使用反射
public static void main(String[] args) {
Person person = new Person("Ali", "a@c.o");
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:a@c.o]]
考虑到 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 + "]";
}
希望对您有所帮助!
关于java - 如何在 Java 中将 Object 转换为 NameValuePair ArrayList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26930675/