Class 如何使用src/groovy类?

Class 如何使用src/groovy类?,class,groovy,dns,src,Class,Groovy,Dns,Src,我有一个域需要引用我在src/groovy目录下创建的类。我遵循上面的示例:20Classes/embedded.html ===> class Person { String name Country bornInCountry Country livesInCountry static embedded = ['bornInCountry', 'livesInCountry'] } // If you don't want an associated table create

我有一个域需要引用我在src/groovy目录下创建的类。我遵循上面的示例:20Classes/embedded.html

===>
class Person { String name
 Country bornInCountry
 Country livesInCountry

 static embedded = ['bornInCountry', 'livesInCountry']
}

// If you don't want an associated table created for this class, either
// define it in the same file as Person or put Country.groovy under the
// src/groovy directory.
class Country {
 String iso3
 String name
}
根据注释文本,Country类可以保留在src/groovy目录中。但是当我在这个目录下创建这个类Country时,Person类不再识别它。错误“Groovy:无法解析类国家/地区”如下所示:

Country bornInCountry
Country livesInCountry
我如何解决这个问题?有没有办法使用import语句进行引用

谢谢,


佩德罗·根蒂尔(Pedro Gentil)

这取决于这些类中的每一个都在哪个包中。如果它们在同一个包中,则可以执行以下操作:

域类:

// grails-app/domain/mypackage/Person.groovy
package mypackage

class Person {
    Country bornInCountry

    // ...
}
// src/groovy/mypackage/Country.groovy
package mypackage

class Country {
    // ...
}
// grails-app/domain/mypackage/Person.groovy
package my package

import someotherpackage.Country

class Person {
    Country bornInCountry

    // ...
}
// src/groovy/someotherpackage/Country.groovy
package someotherpackage

class Country {
    // ...
}
非域类:

// grails-app/domain/mypackage/Person.groovy
package mypackage

class Person {
    Country bornInCountry

    // ...
}
// src/groovy/mypackage/Country.groovy
package mypackage

class Country {
    // ...
}
// grails-app/domain/mypackage/Person.groovy
package my package

import someotherpackage.Country

class Person {
    Country bornInCountry

    // ...
}
// src/groovy/someotherpackage/Country.groovy
package someotherpackage

class Country {
    // ...
}
如果它们不在同一个包中,那么您可以解决向
Person
类添加适当的导入语句的问题:

域类:

// grails-app/domain/mypackage/Person.groovy
package mypackage

class Person {
    Country bornInCountry

    // ...
}
// src/groovy/mypackage/Country.groovy
package mypackage

class Country {
    // ...
}
// grails-app/domain/mypackage/Person.groovy
package my package

import someotherpackage.Country

class Person {
    Country bornInCountry

    // ...
}
// src/groovy/someotherpackage/Country.groovy
package someotherpackage

class Country {
    // ...
}
非域类:

// grails-app/domain/mypackage/Person.groovy
package mypackage

class Person {
    Country bornInCountry

    // ...
}
// src/groovy/mypackage/Country.groovy
package mypackage

class Country {
    // ...
}
// grails-app/domain/mypackage/Person.groovy
package my package

import someotherpackage.Country

class Person {
    Country bornInCountry

    // ...
}
// src/groovy/someotherpackage/Country.groovy
package someotherpackage

class Country {
    // ...
}
这将解决您的编译问题


我希望这会有所帮助。

是否将
Country.groovy
移到src/groovy中的默认包?如果是,则将该类放入适当的包中,然后在域类中导入相同的包。该类可以由New/Groovy类创建。。。谢谢