Генерация геттера в Intellij для классного класса без оператора возврата - PullRequest
0 голосов
/ 25 февраля 2019

У меня отличный проект в IntelliJ.У меня есть свойство уровня класса, и я пытаюсь сгенерировать метод получения, используя (Command + N) или (Ctrl + N) без оператора return.

class MyClass {
  final String myProperty

  // generate the below getter from intelliJ
  String getMyProperty() {
    myProperty
  }
}

Я также не могу использовать аннотацию @Immutable из groovy, потому что она несовместима, потому что я должен объявить пустой конструктор, поскольку POGO используется как объект сущности для Hibernate / JPA

1 Ответ

0 голосов
/ 25 февраля 2019

Геттеры и сеттеры не нужны при создании класса POGO

"При написании ваших bean-компонентов в Groovy, часто называемых POGOs (Plain Old Groovy Objects), у вас нетсоздать поле и получить / установить его самостоятельно, но пусть компилятор 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 необязательно в Groovy .Метод, сгенерированный вашей IntelliJ IDEA, правильный.В этом случае возвращается последнее выражение метода body.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...