2010-08-24 2 views
3

Так что в основном я хотел бы, чтобы мое приложение читало информацию из базы данных, эта информация будет строкой, которая является действительным кодом Java. После чтения я хотел бы, чтобы мое приложение выполняло эту строку, как если бы это был код. Есть ли какая-либо функциональность, упакованная в sdk android, которая поддерживает это?Может ли андроид выполнить строку как код?

По сути, я хочу, чтобы телефон заполнил некоторые данные информацией, запрошенной из базы данных. Одна из этих частей информации будет представлять собой заявление, как:

"return data.ZombieKillTotal >= 100000;" 

, который будет использоваться в заявлении, как:

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

Я просто не знаю, что использовать для «ExecStringAsCode» :(

+2

Не очень хорошая идея, это даже ужасная идея, чтобы выполнить строку. –

+0

Я не знаю, хотите ли вы сделать это на Android или даже если он поддерживается, но на Java вам, вероятно, придется использовать динамически скомпилированные/загруженные/выполненные классы. –

+0

@Colin: Как бы вы порекомендовали получить эту информацию в классе из базы данных, если не выполняете строку? – FlyingStreudel

ответ

0

язык программирования Java не действительно обеспечивает функцию для выполнения кода в текстовых строках.

Вы можете встроить интерпретатор для более сценариев дружественного языка (Perhap s Python) и выполнить код таким образом.

0

Если вы хотите, чтобы динамический код загружался динамически, вам нужно будет использовать somthing, например COdeDOM, для создания кода и его компиляции, а затем использовать отражение, чтобы загрузить и выпустить его.

Смежные вопросы