当前位置: 首页 > 知识库问答 >
问题:

Java8-在HashMap中存储方法,并从map中的方法获取返回值

赵炯
2023-03-14
private Map<String, Runnable> timeUnitsMap = new HashMap<String, Runnable>() {{
    timeUnitsMap.put("minutes", () -> config.getMinutesValues());
}}

方法config.getMinutesValues()来自另一个类。

如何执行int value=timeunitsmap.get(“minutes”).run();或在映射中存储其他内容(而不是runnable),以便从映射中的函数获取值?

共有1个答案

贺兴昌
2023-03-14

您将需要使用Callable而不是Runnable,而且还需要重写call()方法。

您可以从以下片段中获得线索:

private Map<String, Callable<Integer>> timeUnitsMap = new HashMap<String, Callable<Integer>>(){
        {timeUnitsMap.put("minutes", () -> call());}};

您还需要重写call()方法,

@Override
    public Integer call() throws Exception {
        return 1;
}
 类似资料:
  • 我有一个包含通过构造函数创建的对象的hashmap。这些对象在hashmap中 我有一个比较两个数组的函数。一个数组是手动创建的,但第二个数组是通过一个方法创建的。我只需要来自HashMap的值。 我被这种方法困住了... 如果取出.toArray(),将得到一个“无法从集合 转换为brick” 如果将.toArray()更改为.toString(),则会得到一个“无法从String转换为bric

  • 本文向大家介绍Python中执行存储过程及获取存储过程返回值的方法,包括了Python中执行存储过程及获取存储过程返回值的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python中执行存储过程及获取存储过程返回值的方法。分享给大家供大家参考,具体如下: 在Pathon中如何执行存储过程呢?可以使用如下方法: 存储过程定义基本如下: 1. 使用adodbapi 2. 使用pymssq

  • 问题内容: 我想将方法​​返回的数组存储到另一个数组中。我怎样才能做到这一点? 当我调用此方法时,如何将返回的数组(z)存储到另一个数组中? 问题答案: 上面的方法不返回数组本身,而是返回对该数组的引用。在调用函数中,您可以在另一个引用中收集此返回值,例如: 此后还将引用之前引用的同一数组。 如果这不是您想要的,并且要创建阵列的副本,则可以使用创建副本。

  • 我有两个哈希图。其中每一个都有键,就像下面的hashmap一样。 此映射由DB2数据库查询输出的值填充。我注意到,即使我有两个这样的hashmap,并且如果我尝试检索hashmap键的值,它也总是返回null。我通过在监视窗口中添加所有需要的变量进行了检查。我觉得一切都很好。 我的代码的一小部分。 注意:inputMessageDbRecords的类型是

  • 问题内容: 我有用户将在命令行/终端Java程序上输入的命令列表(i,h,t等)。我想存储命令/方法对的哈希: 这样我就可以得到类似以下的代码: 这可能吗?如果没有,那么简单的方法是什么? 问题答案: 使用Java 8+和Lambda表达式 使用lambda(可在Java 8+中使用)进行以下操作: 在这种情况下,我很懒惰并重用了该接口,但是也可以使用我在答案的Java 7版本中发明的-。 此外,