java - 运行 HashMap 中的对象的方法

标签 java hashmap

我有一个静态对象(hive),它是在名为 Garden 的对象中创建的,并且我在许多其他对象中使用了 hive 中的方法。

现在我需要包含不同数据(数组等)的多个配置单元。因此我将不同的配置单元放入 HashMap 中。

我仍然需要从现在位于其他对象的 HashMap 中的配置单元运行方法,并且我需要它从正确的配置单元实例运行该方法。

如何将 hive 中的方法作为不同对象中 HashMap 中的对象调用?

class Garden()
{
    Map<String, Hive> HiveMap = new HashMap<String, Hive>();
    Hive hiveA = new Hive();
    map.put("A", hiveA);
    Hive hiveB = new Hive();
    map.put("B", hiveB)
}

class Hive()
{
    ArrayList bees<Bee bee> = new ArrayList();
    Bee bossBee = new Bee;

    void importantHiveBusiness()
    {
    ...
    }
}

class Bee()
{
    //Garden.hive.importantHiveBusiness();  
}

不是实际的代码,只是为了尝试更清楚地展示我想要做什么。感谢您的帮助

蜜蜂想要从它所在的 hive 运行该方法(蜜蜂在 arrayList 中)

最佳答案

map.get("A").importantHiveBusiness()

除非我错误地解释了你的问题,否则这应该可以。

编辑:啊,我明白你在这里得到了什么。

您需要决定您的应用程序是使用多个 Garden,还是仅使用一个 Garden。 如果您只需要一个花园,则应该使用“单例”设计模式。下面的例子:

public class Garden {
    public static final Garden GARDEN = new Garden();
    private HashMap<String, Hive> hiveMap = new HashMap<String, Hive>();
    private Garden() {
        // create garden here
    }
    public HashMap<String, Hive> getHiveMap() {
        return this.hiveMap;
    }
}

私有(private)构造函数非常重要。这确保了(只要您不在 Garden 类的代码中创建任何 Garden 对象,就只能存在一个 Garden。 “static”关键字使 GARDEN 从代码中的任何位置都可以访问。

然后你可以简单地做...

public class Bee() {
    // inside some method...
    Garden.GARDEN.getHiveMap().get("A").importantHiveBusiness();
}

或者,如果您想要多个花园,那么您只需要实例化(创建)一个 Garden 对象,然后 myGarden.getHiveMap().get("A").importantHiveBusiness();

编辑2:

Bee 类包含对其配置单元的引用可能很有用。这将消除对 HiveMap 的需要。

public class Bee {
    private final Hive hive;
    public Bee(Hive hive) {
        this.hive = hive;
    }
    public getHive() {
        return this.hive;
    }
}

关于java - 运行 HashMap 中的对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20479427/

相关文章:

java - 如何使用 proguard 和 maven 从 war 中混淆一个 jar

java - java中map中存储大量 'Entry'时如何节省内存?

java - 封闭寻址哈希表。它们是如何调整大小的?

java - 应用程序无法启动

java - 未捕获自定义 RuntimeException

java - HttpClientBuilder 基本认证

java - 在类路径中找不到 jaxws 前端

Java 8 Map of Collections 从集合中删除元素,如果为空则删除条目

java - 检查 key 是否在 map 中 - 一种方法有效,另一种方法无效

java - 单个文件中多个java对象的序列化和反序列化