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