-2

文字列ステートメントをコードに解析するにはどうすればよいですか?

例えば:

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

    if(statement) // do something
4

3 に答える 3

0

元の Java には組み込みのJavaCompiler クラスがあり、完全に有効な .java ファイルを形成するコードをコンパイルおよびロードできます。

Androidにはこれがありません。

Java で記述された JavaScript エンジンを使用することもできます (たとえば、Android は WebView なしで V8 を利用します)。

ただし、これでも Java 関数で宣言されたローカル変数にアクセスすることはできません。(リフレクション API を使用すると、クラス フィールドの値を読み取ることができます。)

于 2013-04-13T08:19:23.430 に答える
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 に答える