java - 如何在 Java 中将 Object 转换为 NameValuePair ArrayList?

标签 java object arraylist name-value

假设我们有一个带有所有字符串参数的 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/

相关文章:

r - 为什么不能计算表达式中的这个 R 调用对象? (子集与从调用对象中提取)

java - 如何修改 String[] 内的元素,该元素位于另一个 Arraylist 内的 Arraylist 内

java - ArrayList 元素替换为新条目

java - 使用端口 1099 的 IntelliJ Idea IDE

Javascript:如何解释破坏 for 循环的未定义 JSON

java - Spring 将多部分附件读取为输入流

swift - 从 firebase 函数转换为 String 和 Bool

java - 使用 DefaultListModel 从 ArrayList 添加项目到 JList

java - 为什么calculator.getValue()总是0?

java - 将文件txt划分为Strings Java的子列表