[英]Passing a groovy object to a Java method
我在Java中創建一個對象,並將其設置為GroovyShell中的變量。
// in java file, create class and shell
//
class Foo {
void addSomething(Bar bar) { ... }
}
shell.setVariable("foo", new Foo())
在groovy中,我創建了一個從Bar擴展的新類,並嘗試調用addSomething()
。
class MyBar extends Bar
{
...
}
foo.addSomething(new MyBar())
失敗的原因是:
groovy.lang.MissingMethodException: No signature of method: static foo.addSomething() is applicable for argument types: (MyBar) values: [MyBar@4ba7aa7]
也許靜態部分讓我失望了,但我不明白該錯誤。 我認為這可能與將Groovy創建的子類傳遞給addSomething有關,但我也嘗試傳遞一個對象。 我是從Java類創建的。 我不能將groovy創建的對象傳遞給設置為變量的java類嗎?
我發現問題是我傳遞給groovy的變量名與文件名匹配,並且文件名踩了變量。 通過重命名文件或變量,我可以毫無問題地傳遞對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.