gpt4 book ai didi

java - 在列表中查找对象的索引

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:07:13 25 4
gpt4 key购买 nike

我有一个列表(必填项),其中包含一个表列结果,例如:

NAME
ADDRESS
AGE
.
.
etc

在我的方法中,我得到一个用户对象,其中包含 user.getName()、user.getAge() 等的值。 我想知道确保列表中每个项目的最佳方法存在于用户对象中。列表中的项数是可变的。

public boolean isUserInfoComplete(User user, ArrayList list){
//so, if the list has AGE, the user.getAge() must have some value
}

我想到的一种方法是维护另一个列表,其中包含每个用户信息的值,并根据我的数据库列表检查该列表,但该列表不可扩展。

最佳答案

不可能在没有反射的情况下将您的方法名称与列表内容动态匹配(这可能既昂贵又脆弱)。您可能需要考虑将您的 User 值保存在中央 Map 缓存中。这是一种方法:

public class User {

private enum Field {
NAME,
AGE
//...
}

private Map<String, Object> values = new HashMap<>();

private void putValue(Field field, Object value) {
values.put(field.name(), value);
}

private Object getValue(Field field) {
return values.get(field.name());
}

public void setName(String name) {
putValue(Field.NAME, name);
}

public String getName() {
return (String)getValue(Field.NAME);
}

public void setAge(int age) {
putValue(Field.AGE, age);
}

public Integer getAge() {
return (Integer)getValue(Field.AGE);
}

//...

public boolean isUserInfoComplete(List<String> fields) {
return values.keySet().containsAll(fields);
}
}

关于java - 在列表中查找对象的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34736495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com