Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将属性添加到ArrayList<;对象>;在爪哇_Java_Json_Object - Fatal编程技术网

Java 将属性添加到ArrayList<;对象>;在爪哇

Java 将属性添加到ArrayList<;对象>;在爪哇,java,json,object,Java,Json,Object,我有一个叫做偏好的课程。如何将对象推入此ArrayList package example; import java.util.ArrayList; public class Preferences { public Preferences() { super(); } ArrayList<Object> preferences; public void setPreferences(ArrayList<Object>

我有一个叫做偏好的课程。如何将对象推入此ArrayList

package example;

import java.util.ArrayList;

public class Preferences {
    public Preferences() {
        super();
    }

    ArrayList<Object> preferences;

    public void setPreferences(ArrayList<Object> preferences) {
        this.preferences= preferences;
    }

    public ArrayList<Object> getPreferences() {
        return preferences;
    }
}
我希望最终得到这些对象的ArrayList,如下所示(重要的一点是,我不想指定类型,因为它们可以变化)。我希望preferenceValue可以重用

[
   {
       preferenceName: "Default Date",
       preferenceValue: "05/07/2020"
   },
   {
       preferenceName: "Default Number",
       preferenceValue: 55
   },
   {
       preferenceName: "goToHomePage",
       preferenceValue: true
   }
]
你似乎需要

public class User {
    private final String userName;
    public User(String userName) {
        this.userName = userName;
    }

    public String getUserName() {
        return userName;
    }
}

public class Runner {
    final List<User> users = new ArrayList<>();

    public Runner() {
        users.add(new User("User 1"));
        users.add(new User("User 2"));
    }

    public static void main(String[] args) {
        Runner runner = new Runner();
    }
}
我会把它组织成

new User("Default Date", LocalDate.parse("05/07/2020", DateTimeFormatter.ofPattern("dd/MM/yyyy")),
         "Default Number", 55,
         "goToHomepage", true);
但是,您最好提前知道可能的属性是什么,并使用看起来像的用户

class User {
    LocalDate defaultDate;
    long defaultNumber;
    boolean goToHomepage;
}

我会有一个
Users
类,它有一个
User
列表,其中每个用户都只是一个人。你的设计完全错了。您不希望某个用户的用户是一个对象列表。您需要一个用户列表(也就是说,
毫无意义。除了字符串之外,用户名还能是什么类型?不会有任何用户被命名为
456
true
。不如问一个问题,清楚地解释一下你真正想要实现的目标,而不是让我们猜测它可能是什么?不管是什么,我同意前面的评论,这是一种代码味道我怀疑这源于一个设计拙劣的数据模型“…重要的是我不想指定类型,因为它们可以变化”。我想使用对象的arraylist的方法不是将用户名定义为字符串。@MuratKaragöz是真的,但这足够清楚地表明正常的做法。@Laziotibjczyk你是说你不知道用户可能具有什么属性吗?我是说,用户名最终可能会持有字符串以外的类型,这就是为什么我不想这样做的原因请指定它。@laziotibjczyk参见我的第二个示例,它允许任意属性。任何不是字符串的用户名,都可以视为字符串。
{ preferenceName: 'Default Date', preferenceValue: '05/07/2020' }, 
{ preferenceName: 'Default Number', preferenceValue: 55 }, 
{ preferenceName: 'goToHomepage', preferenceValue: true }
new User("Default Date", LocalDate.parse("05/07/2020", DateTimeFormatter.ofPattern("dd/MM/yyyy")),
         "Default Number", 55,
         "goToHomepage", true);
class User {
    LocalDate defaultDate;
    long defaultNumber;
    boolean goToHomepage;
}