我在IntelliJ中有一个常规项目。我有一个类级别的属性,并且尝试使用不带return语句的(Command + N)或(Ctrl + N)生成一个getter方法。
class MyClass {
final String myProperty
// generate the below getter from intelliJ
String getMyProperty() {
myProperty
}
}
我也不能从groovy中使用@Immutable注释,因为它不兼容,因为我必须声明一个空的构造函数,因为POGO被用作Hibernate / JPA的实体对象
答案 0 :(得分:2)
创建POGO类时不需要字母和二传手
“在用Groovy(通常称为POGO(普通旧Groovy对象))编写bean时,您不必自己创建字段并使用getter / setter方法,而是让Groovy编译器为您完成。
来源:http://groovy-lang.org/style-guide.html#_getters_and_setters
所以
class MyClass {
String myProperty
// generate the below getter from intelliJ
String getMyProperty() {
myProperty
}
}
您需要的只是
class MyClass {
String myProperty
}
在字节码级别上发生的是将字段myProperty
编译为等效的private String myProperty
,并为您生成了公共getMyProperty
和setMyProperty
方法。
另一方面,return keyword is optional in Groovy。您的IntelliJ IDEA生成的方法是正确的。在这种情况下,将返回body方法的最后一个表达式。