Может ли Android выполнять строку как код? - PullRequest
3 голосов
/ 24 августа 2010

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

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

"return data.ZombieKillTotal >= 100000;"

Что будет использоваться внутри оператора вроде:

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

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

Ответы [ 3 ]

3 голосов
/ 24 августа 2010

В итоге я использовал библиотеку JRE и импортировал javax.script.*;

http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/

0 голосов
/ 24 августа 2010

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

0 голосов
/ 24 августа 2010

Язык программирования Java не предоставляет возможности для выполнения кода в текстовых строках.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...