Groovy代码找不到Java构造函数
当我在下面的Groovy代码中运行Groovy代码找不到Java构造函数,java,groovy,interop,Java,Groovy,Interop,当我在下面的Groovy代码中运行main方法时,我得到一个Groovy.lang.GroovyRuntimeException:找不到匹配的构造函数:com.example.Person(java.lang.String,com.example.Pet)。为什么呢?我使用的是Groovy/Grails工具套件的最新版本 Groovy: package com.example import groovy.transform.TypeChecked @TypeChecked class Tes
main
方法时,我得到一个Groovy.lang.GroovyRuntimeException:找不到匹配的构造函数:com.example.Person(java.lang.String,com.example.Pet)
。为什么呢?我使用的是Groovy/Grails工具套件的最新版本
Groovy:
package com.example
import groovy.transform.TypeChecked
@TypeChecked
class Test {
static main(args) {
Pet fido = new Pet(name: 'Fido', nickname: 'Scruffy')
Person dave = new Person('Dave', fido)
}
}
@TypeChecked
class Pet {
String name
String nickname
}
爪哇:
确保按照以下顺序编译和运行:
groovycpet.groovy
javacperson.java
groovyctest.groovy
groovy测试
Pet.java
:
public interface Pet {
public String getName();
public String getNickname();
}
然后我将Groovy类Pet
重命名为PetImpl
,并让它扩展新的Pet
接口。现在Java代码可以独立于Groovy进行编译,Groovy代码可以编译,一切正常
编辑:我又玩了一些,我发现如果我在Groovy文件中右键单击我的
main
方法并创建一个直接引用main类com.example.Test
的运行方式配置(Groovy脚本),我就不会再遇到这个问题,不必对我最初发布的代码进行任何更改(即,没有JavaPet
接口)
public interface Pet {
public String getName();
public String getNickname();
}