我正在开发一个项目,其中有多个类来保存从 xml 文件加载的数据。我想解决的问题是几乎所有的类都有这些方法:
- addSingle[对象名称]
- addMultiple[对象名称]
但是,一个类中可能有更多类型的对象需要通过这种方式添加。例如:
class Airspace { private List airports; private List waypoints; ... public void addSingleAirport(Airport a) {...} public void addMultipleAirports(Airport[] a {...} public void addSingleWaypoint(Waypoint w) {...} public void addMultipleWaypoints(Waypoint w) {...} }
我正在考虑将这些 addSingle
和 addMultiple
方法放入接口(interface)中,然后在实现这些方法时根据对象类型决定应将其添加到哪个列表,但这不是很愚蠢吗?
有没有更有效的方法来做到这一点?我想避免将这些方法写入每个需要它们的特定对象的类中,因为它们的作用完全相同。
最佳答案
我不认为你的方法很愚蠢,但这种类型检查确实会影响性能。
尽管如此,扩展您的方法,我会保留按 Class
索引的列表的映射:
class Airspace {
private Map<Class, List<Object>> lists = new HashMap();
public void addSingle(Object o)
{
List<Object> list = lists.get(o.getClass());
if(list == null)
{
list = new ArrayList();
lists.put(o.getClass(), list);
}
list.add(o);
}
...
...
关于java - Java 中多种类型对象的高效重复检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24241442/