在java中将属性放入hashmap时如何从对象中排除属性
比如说,Employee
类有三个属性
class Employee {
int id;
String name;
String team;
public Employee(){
this.id = id;
this.name = name;
this.team = team;
}
}
我想在放入HashMap
之前从对象中删除team
Map<Integer, Employee> empMap = new HashMap<>();
Employee e1 = new Employee(100, "John", "Dev");
Employee e2 = new Employee(101, "Mary", "Dev");
Employee e3 = new Employee(103, "Andy", "QA");
empMap.put(e1.getId(), e1);
empMap.put(e2.getId(), e2);
empMap.put(e1.getId(), e3);
empMap
中的值不应包含team
属性。创建新对象会起作用,但实时性成本很高。有没有一种方法可以在不创建新对象的情况下实现这一点
# 1 楼答案
正如您所提到的,一个选项是在不使用team属性的情况下创建新对象。另一种是使用立面
# 2 楼答案
你可以检查你的设计,以确保你需要的财产存在。 您在
map
中持有Employee
引用,team
属性在那里,并且可能正确地表示了Employee
。。。您可以避免使用team
属性。。。或者你想拥有一个Person
类如果您使用某个框架中的这些实例来执行某些操作(例如:序列化、持久化等),那么它可能会提供一种忽略/跳过对象中某个属性的方法