是否可以将函数值存储在哈希表中?

时间:2011-10-23 23:52:37

标签: java android mobile

我想将函数存储为我的Android设备的HashTable中的值。这可能吗?

3 个答案:

答案 0 :(得分:2)

是的,你可以使用所谓的Reflection来做到这一点。你会创建一些HashTable,如下所示:

HashTable<String, Method> functionsMap = new HashTable<String, Method>;

以下是有关Method课程的更多信息。

那就是说,反思通常是一个坏主意。当你觉得有必要使用Reflection时,你应该问自己,“我真的需要以这种方式做事吗?有什么方法可以完成我想用反射做的事情吗?”。如果经过几分钟的努力思考后,问题的答案仍然是“是的,我需要反思”,然后继续使用它。

答案 1 :(得分:0)

不,java不允许这样做。你可以做的是创建某种接口,允许你提供特定方法的自定义实现。

例如

public interface CustomerHandler{
  public void handle();
}

然后您可以创建此接口的自定义实现并将这些对象添加到hashmap。然后你可以检索对象并调用方法。

HashMap<String, CustomHandler> map = new HashMap<String, CustomHandler>();
//add objects
map.get("some_handler").handle();

答案 2 :(得分:0)

从Java7开始,您可以创建MethodHandles来表示函数(方法)。 当然,你可以将它们存储在任何地方,包括Hashtables。