[英]How to get access to a HashMap of objects from the Objects in that HashMap. (Java)
我有一個名為 User 的類的一些 POJO 對象的哈希映射: HashMap<ObjectId, User>
這些對象(用戶)相互關聯。 (我需要搜索其他用戶來更新自己的參數)
如何訪問用戶對象中的 HashMap?
import org.bson.types.ObjectId;
import org.bson.BsonDocument;
import java.util.ArrayList;
import java.util.List;
public class User {
private ObjectId _id;
private int grade;
private String region;
private ArrayList<ObjectId> _reg_by;
private ObjectId regBy;
public User(){
}
public ObjectId getId() {
return _id;
}
public void setId(final ObjectId id) {
this._id = id;
}
public int getGrade() {
return grade;
}
public void setGrade(final int grade) {
this.grade = grade;
}
public String getRegion() {
return region;
}
public void setRegion(final String region) {
this.region = region;
}
public ObjectId getRegBy() {
if(regBy == null) {
regBy = ((_reg_by.size() != 0) ? _reg_by.get(0) : null);
}
return regBy;
}
public void setRegBy(final ObjectId regBy) {
this.regBy = regBy;
}
public ArrayList<ObjectId> get_reg_by(){
return _reg_by;
}
public void set_reg_by(ArrayList<ObjectId> _reg_by){
this._reg_by = _reg_by;
}
private String updateRegion(){
if(getRegBy() == null)
return null;
//TODO search for the person who registered him and use the region!
// how to get access to others from here?!
}
}
這是用戶類,在 regionUpdate() 函數中,我想擁有此訪問權限
我在我的 Main 函數中創建了這個 HashMap。
HashMap<ObjectId, User> users = mongoHandler.getUsers();
我通過將我的 HashMap 定義為靜態來解決我的問題。
public static HashMap<ObjectId, User> users
所以我可以使用以下代碼從任何地方輕松訪問它:
HashMap<ObjectId, User> users = Main.users
或任何方法,例如Main.users.getId();
另一種解決方案可能是在您的“用戶”類中創建一個包含相關用戶列表的屬性,如果您知道一個用戶與另一個用戶相關,則在構建列表時將其添加到每個用戶中。
public class User {
...
private List<User> relatedUsers = new ArrayList<User>();
...
private void updateRelatedUsers() {
for(User relatedUser : relatedUsers) {
//do stuff to update the relatedUser object.
relatedUser.setSomething(someValue);
}
}
//Getter and setter
public List<User> getRelatedUsers() {
return relatedUsers;
}
public void setRelatedUsers(List<User> relatedUsers) {
this.relatedUsers = relatedUsers;
}
...
}
像這樣添加用戶:
...
User myUser = creatUserHoweverYouDo();
User myRelatedUser = getMyRelatedUser(myUser);
myUser.getRelatedUsers().add(myRelatedUser);
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.