安卓系统能否执行字符串作为代码?

3

基本上,我希望我的应用程序从数据库中读取信息,这些信息将是有效的Java代码字符串。一旦读取,我希望我的应用程序执行此字符串,就好像它是代码一样。 安卓SDK中是否有支持此功能的功能包?

实质上,我想让手机使用从数据库查询到的信息填充一些数据。其中一个信息片段可能是这样的语句:

"return data.ZombieKillTotal >= 100000;"

这将被用在类似于以下语句中:

registerAchievement(new Achievement("Zombie Killer", new AchievementValidator() { 
    public boolean isSatisfied(Data data) { ExecStringAsCode(query result) } 
    });

我不知道该用什么来执行“ExecStringAsCode” :(

2
执行字符串并不是一个好主意,甚至可以说是一个糟糕的主意。 - Colin Hebert
我不知道你是否想在Android上这样做,甚至不确定它是否被支持,但在Java中,你可能需要使用动态编译/加载/执行类。 - Nate W.
@Colin:如果不执行字符串,您会如何建议将那些信息从数据库导入类中? - FlyingStreudel
这是一个非常危险的想法。为什么不解析字符串并对其进行必要的操作呢? - Falmarri
我正在尝试不限制成就验证的功能。如果我有误解,也许您可以提供一个已解析字符串转换为代码的示例? - FlyingStreudel
3个回答

3

0

Java编程语言实际上并没有提供在文本字符串中执行代码的功能。

您可以嵌入一个更适合脚本的语言(例如Python)的解释器,并以这种方式执行代码。


0

如果您想执行动态加载的代码,您将需要使用类似CodeDOM的东西来创建代码并编译它,然后使用反射来加载和执行它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接