2010-08-24 88 views
3

所以基本上我想我的應用程序從數據庫中讀取信息,這個信息將是一個有效的java代碼的字符串。一旦閱讀,我想我的應用程序執行此字符串,就好像它是代碼。是否有任何與支持這個功能的android sdk打包的功能?Android可以執行字符串作爲代碼嗎?

本質上,我想讓手機用數據庫中查詢的信息填充一些數據。其中這些信息將是如下語句:

"return data.ZombieKillTotal >= 100000;" 

這將一個語句中使用,如:

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

我只是不知道用什麼「ExecStringAsCode」 :(

+2

不是一個真正的好主意,它甚至執行字符串一個可怕的想法。 – 2010-08-24 17:53:13

+0

我不知道你是否想要在Android上進行此操作,即使它支持,但在Java中,您可能必須使用動態編譯/加載/執行的類。 – 2010-08-24 17:56:17

+0

@Colin:如果不執行字符串,你會如何建議從數據庫中獲取這些信息? – FlyingStreudel 2010-08-24 18:03:49

回答

0

Java編程語言並沒有真正的代碼中的文本字符串的執行提供了一個功能。

您可以嵌入一個解釋的更爲腳本友好的語言(perhap s Python)並以這種方式執行代碼。

0

如果要執行動態加載的代碼,您將不得不使用類似COdeDOM的代碼來創建代碼並進行編譯,然後使用反射來加載和執行它。

相關問題