通过存储在哈希表中的字符串访问函数 [英] Accesing a function via string stored in Hashtable
问题描述
如果我在哈希表中将函数名称存储为字符串.
是否可以通过存储的字符串访问函数?
If I have function names stored as strings in a Hashtable.
Is there a way to access the functions via the stored strings?
编辑
恐怕我在CLDC1.1/MIDP2.0上使用的平台不支持Reflection.
有什么解决方法?
EDIT
I'm afraid the platform that i'm working on CLDC1.1/MIDP2.0 does not support Reflection.
Any workaround possible?
推荐答案
只需使用一长串else-if:
Just use a big long list of else-ifs:
[...]
} else if ("foo".equals(function)) {
target. foo();
} else if ("bar".equals(function)) {
target. bar();
[...]
(尽管我通常不喜欢在源代码中尝试垂直对齐,但我认为在这种情况下,这是非常值得的.)
(Although I generally don't like attempting vertical alignments in source, I think in cases like this it is well worth it.)
在映射中存储函子是一种替代方法,对于许多MIDP应用程序,bu可能会增加对象大小.
Storing a functor in the map is an alternative, bu might increase object size too much for many MIDP applications.
这篇关于通过存储在哈希表中的字符串访问函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!