簡體   English   中英

將Groovy對象傳遞給Java方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM