GroovyスクリプトとJavaを使用しています。 groovyスクリプトからJavaクラス(A)の複数のインスタンスを作成し、リストに渡してから、このリストを新しいクラス(B)に渡そうとしています。Groovyスクリプトを使用してJavaクラスのインスタンスを作成します。
私のBのjavaファイルは次のとおりです。
public class B {
public void getValues(List<A> values) {...}
}
私のAのjavaファイルは次のとおりです。
public class A {
public long num;
public A(long num){
this.num = num;
}
}
私のメインのJavaファイルは次のとおりです。
GroovyScriptEngine groovyScriptEngine = new GroovyScriptEngine(/*path to file.groovy*/);
Binding binding = new Binding();
binding.setVariable("b", new B());
groovyScriptEngine.run("file.groovy", binding);
私file.groovyは次のとおりです。
def myList = []
myList.add(new A(1))
myList.add(new A(2))
myList.add(new A(3))
b.getValues(myList)
私はスレッドで私のアプリ 例外を実行しています。この例外を得続ける「メイン」groovy.lang.MissingPropertyException:いいえ、そのようなプロパティ:Aクラスのため:私はGroovyのJavaへ追加してい
が を初期化ファイルbinding.setVariable( "a"、new A());
私はAの3つのオブジェクトを取得していますが、すべてがnumの値3を含んでいます(リストの3つのオブジェクトはすべて同じオブジェクトです)。
私はこの問題を解決するために得ることができるすべての助けに感謝します。
輸入the.path.to.my.classes.Aを。 //サイドノートでは、関数 "getValues"の名前を "setValues"に変更する必要がありますが、実装を行わないと仮定することはできません。 – Wietlol
getValuesは参考になりましたが、 –