Как вы модифицируете генераторы кода IDEA IntelliJ v10.x для методов получения и установки? - PullRequest
2 голосов
/ 30 сентября 2011

IntelliJ генерирует следующий код получения / установки для логических полей:

   private boolean isTest;

   public boolean isTest() {
      return isTest;
   }

   public void setTest(boolean test) {
      isTest = test;
   }

Это также дает сигнатуры того же метода:

   private boolean test;

   public boolean isTest() {
      return test;
   }

   public void setTest(boolean test) {
      this.test = test;
   }

Отлично!Все идет нормально.IntelliJ следует соглашениям именования JavaBean для логического значения.

Но посмотрите, что произойдет, если вы используете object Boolean (вместо примитивного логического значения):

   private Boolean isTest;

   public Boolean getTest() {
      return isTest;
   }

   public void setTest(Boolean test) {
      isTest = test;
   }

О, о!Вы видите это?Вместо этого он должен генерировать это (что делает Eclipse):

   private Boolean isTest;

   public Boolean getIsTest() {
      return isTest;
   }

   public void setIsTest(Boolean isTest) {
      isTest = isTest;
   }

Это может показаться несущественным, но это небольшое несоответствие вызвало огромный проектный кошмар.Причина заключается в следующем: существуют другие слои и структуры, которые ожидают сопоставления переменных ИМЕННО с именами полей класса Java - в противном случае происходит сбой без пользовательской логики сопоставления (болезненной и ненужной).

НашаКоманда использует шаблон is * Name * для всех логических объектов.Даже наши логические столбцы базы данных называются is_ name , что переводится в "is * Name *" с использованием плагина инструментов обратного инжиниринга JBoss Hibernate для Eclipse.

Кто-нибудь знает, как это исправить?Есть какой-то тип шаблона генерации кода, который мы можем настроить?Любая помощь с благодарностью.

1 Ответ

1 голос
/ 30 сентября 2011

Сообщалось , что Eclipse генерирует get<Property> для логического значения, в то время как IDEA генерирует is<Property>. Это противоречит спецификации, и пользователи просили исправить это.

В результате устранения этой ошибки текущая версия IDEA работает в соответствии со спецификацией JavaBeans и использует такие геттеры только для примитивного типа boolean и get<Property> для других типов, включая Boolean.

Извините, но нет способа настроить это поведение в IDEA.

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