-2

如何将字符串语句解析为代码?

例如:

    boolean isOnline = true;
    boolean isConnected = true;
    String statement = "isOnline && isConnected";

    if(statement) // do something
4

3 回答 3

0

尝试这个:

   boolean isOnline = true;
   boolean isConnected = true;
   String statement = "isOnline && isConnected";
   String[] split = statement .split(" && ");

   if(split.lenght > split[0].equals("isOnline") && split[1].equals("isConnected")){
       // do something
   }
于 2013-04-13T08:07:04.747 回答
0

我会建议以下策略,具体取决于您对字符串表达式的结构方式的了解。

1-开发自己的解析器。

你将不得不发展自己的语法。android 上有一个 ANTLR 端口:ANTLR 和 Android

即,你会得到你的表达(“isOnline”&&“isConnected”)

2-使用自反性/内省

解析字符串后,您可以使用自反性将字段或方法表达式转换为字段或方法。

即,您会将“isOnline”翻译为 isOnline,将“isConnected”翻译为 isConnected

祝你好运

于 2013-04-13T08:17:22.563 回答
0

原始 Java 有一个内置的JavaCompiler 类,它允许您编译和加载形成完整有效 .java 文件的代码。

安卓没有这个。

您可以尝试使用一些用 Java 编写的 JavaScript 引擎(参见,例如,Android 利用 V8 without WebView)。

但是,这仍然不允许您访问在 Java 函数中声明的局部变量。(使用反射 API,您将能够读取类字段的值。)

于 2013-04-13T08:19:23.430 回答