我有一个类说大陆。我创造了很多这样的例子。我想将所有此类实例存储在一个集合中。每次创建新对象时,都应将其添加到 Set 中。
public class Continent {
private static HashSet<Continent> globalContinents = new HashSet();
final private String continent_name;
Continent(String continent_name){
this.continent_name = continent_name;
Continent.globalContinents.add(this);
}
}
这向我发出了对象泄漏的警告。我将使用多线程,所以您有什么建议来有效地实现这样的事情吗?设计理念?
最佳答案
您可以为您的大陆创建一个简单的工厂。
public class ContinentFactory {
private Set<Continent> continents = new HashSet<>();
public Continent create(String name) {
Continent continent = new Continent(name);
continents.add(continent);
return continent;
}
public static class Continent {
private String continentName;
public Continent(String continentName) {
this.continentName = continentName;
}
...
equals and hashcode
....
}
}
您也应该遵循 Java 命名约定: https://www.oracle.com/technetwork/java/javase/documentation/codeconventions-135099.html
关于java - 维护一组相似对象的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52001822/