3

main以下の Groovy コードでメソッドを実行すると、 groovy.lang.GroovyRuntimeException: Could not find matching constructor for: com.example.Person(java.lang.String, com.example.Pet). 何故ですか?Groovy/Grails ツール スイートの最新バージョンを使用しています。

グルーヴィー:

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
}

ジャワ:

package com.example;

public class Person {
    private String name;
    private Pet pet;

    public Person(String name, Pet pet) {
        this.name = name;
        this.pet = pet;
    }
}
4

2 に答える 2

2

必ず次の順序でコンパイルして実行してください。

  • groovyc Pet.groovy
  • javac Person.java
  • groovyc Test.groovy

  • groovy Test

上記の順序に従えば、期待どおりに機能します。GGTS では、依存クラスが確実に構築されるように、プロジェクトを期待どおりにコンパイル/構築していることを確認してください。

于 2013-07-26T03:23:08.817 に答える