Мне нравится использовать intellij idea для моей повседневной работы, но с тех пор, как я попал в новые java-приложения, такие как streams и builder, одна вещь меня подвела.
Когда я устанавливаю стиль кода Java "Цепные вызовы метода" на "Обрубить, если долго", мой конструктор:
public Blog(Blog c) {
this(c.getId(), c.getFromId(), c.getSiteId(), c.getUserId(), c.getTitle(), c.getFolder(), c.getAddedDate(), c.getFrontPos(), c.isUseSiteWidgets(), c
.isNeedValidSubscriptionToView(), c.isMayStudentPostComments(), c.getLastIndexDate(), c.isCommentsEnabled(), c.isOverrideSiteSettings(), c
.isNotifyOnComment(), c.isOnlyNotiftyOnUnapprovedComment());
}
становится:
public Blog(Blog c) {
this(c.getId(), c.getFromId(), c.getSiteId(), c.getUserId(), c.getTitle(), c.getFolder(), c.getAddedDate(), c.getFrontPos(), c.isUseSiteWidgets(), c
.isNeedValidSubscriptionToView(), c
.isMayStudentPostComments(), c.getLastIndexDate(), c.isCommentsEnabled(), c.isOverrideSiteSettings(), c.isNotifyOnComment(), c
.isOnlyNotiftyOnUnapprovedComment());
}
Когда я устанавливаю «Цепные вызовы методов» на «Не переносить», мои вызовы методов компоновщика становятся очень запутанными. От:
getWizard().sendCommandToServer(CommandProtos.Wrapper.newBuilder()
.setGetTutorSites(CommandProtos.GetTutorSites.newBuilder()
.setEmail(loginUserForm.getEmail().getText())
.setPass(new String(loginUserForm.getPass().getPassword()))
.build())
.build());
на один вкладыш:
getWizard().sendCommandToServer(CommandProtos.Wrapper.newBuilder().setGetTutorSites(CommandProtos.GetTutorSites.newBuilder().setEmail(loginUserForm
.getEmail().getText()).setPass(new String(loginUserForm.getPass().getPassword())).build()).build());
Можно ли получить лучшее от обоих миров? Другими словами, правильно отформатированная функция / конструктор со многими параметрами и правильно отформатированный компоновщик.