Groovy式の文字列があります。私は欲しい:
- java.lang.Stringに含まれているGroovy式を実行します
- 式の結果をオブジェクトとして取得します
- 結果のオブジェクトのタイプを判別します
出来ますか?また、Groovyの動的機能を使用しない場合、式自体を実行せずにコンパイル時に、「静的に」式のタイプを判別できますか。
ありがとう
Groovy式の文字列があります。私は欲しい:
出来ますか?また、Groovyの動的機能を使用しない場合、式自体を実行せずにコンパイル時に、「静的に」式のタイプを判別できますか。
ありがとう
非常にシンプルで簡単な方法は、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