0

我想实现一个功能映射。我有几个函数可以在 SQLite 数据库 ( InsertUSER_Data(), InsertMessages()) 等中插入不同的数据。我想创建一个 Map 并通过一个键盘命令调用一个特定的函数。正如我在搜索过程中看到的那样,有两种方法:匿名类和反射。(例如,这里如何调用存储在 HashMap 中的方法?(Java))我真的很喜欢基于反射 API 的方法(通过方法类型):Map <String, Method>而不是仅仅使用实现接口的匿名类。

但我有疑问:这个解决方案的性能开销是否真的很大,特别是如果我将在 Android 中使用它或者它不是很重要?详细的解释将非常有帮助。

4

1 回答 1

3

我无法回答您的确切观点,但一些基础知识可能会有所帮助:

  • 事先了解表演的艺术是微妙的、困难的和危险的。最好的方法是测量两种解决方案之间的差异(可以像 System.currentTimeMillis() 一样简单)。
  • 根据经验,与 IO(文件或数据库访问)、远程调用甚至某些 UI 元素等其他事物相比,“在内存中”经过的时间在性能方面通常并不重要。
  • 除非您打算进行(b?)数百万次调用,否则我真诚地怀疑诸如小型地图之类的后果。但是,再次,不要相信我,测试它。

最后,你的问题不能简单地使用接口来解决吗?这将消除这个问题,并且通常更容易编写、阅读和调试。就像是 :

interface Actionable { Result doStuff(Param p); }

您的各种函数类可以实现,并且可以在不知道背后究竟是什么的情况下调用。

于 2013-02-25T17:54:07.593 回答