Java 将属性添加到ArrayList<;对象>;在爪哇
我有一个叫做偏好的课程。如何将对象推入此ArrayListJava 将属性添加到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>
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;
}