1

Groovy式の文字列があります。私は欲しい:

  1. java.lang.Stringに含まれているGroovy式を実行します
  2. 式の結果をオブジェクトとして取得します
  3. 結果のオブジェクトのタイプを判別します

出来ますか?また、Groovyの動的機能を使用しない場合、式自体を実行せずにコンパイル時に、「静的に」式のタイプを判別できますか。

ありがとう

4

1 に答える 1

1

非常にシンプルで簡単な方法は、Eval クラスを使用することです。指定された文字列式を評価し、結果を返します。式の型結果は ですObject

def object = Eval.me('1 + 1')

getClass()メソッドまたは単純にオブジェクトのクラスを取得できます。

assert object.class == Integer

この例では、コンパイル時に静的型チェックを決定することはできません。

@groovy.transform.TypeChecked
void test() {
    Integer object = Eval.me('1 + 1')
    assert object.class == Integer
}

[Static type checking] - Cannot assign value of type java.lang.Object to variable of type java.lang.Integer
于 2012-10-29T11:57:00.347 に答える