Интересно как универсальность попала в достоинства? Сортировка слиянием разве не обладает тем же свойством.
Я уже не говорю о простоте реализации. Сортировка слиянием куда проще.
Утверждение про быстродействие неплохо бы подтвердить экспериментальными данными.
Возможно и управляем, но за 10 лет что я с ним знаком я не разу не видел как это можно провернуть на практике. Все хорошо пока у вас пет шоп, как только нужно сделать шаг в сторону у вас появляется какой-то кусок не поддерживаемого го кода.
Т.е. метод view будет возвращать this. Тогда иммутабельность будет не настоящая. Состояние можно будет изменить через оригинальный user, а это не то что изначально требовалось.
Если уж хочется странного то что мешает сделать так:
class Base {
private final int field1;
Base(int field1) {
this.field1 = field1;
}
public static class BaseBuilder extends BaseBuilderEx<BaseBuilder> {
public Base build() {
return new Base(field1);
}
}
protected static class BaseBuilderEx<T> {
protected int field1;
public T field1(int field1) {
this.field1 = field1;
return (T) this;
}
}
}
class Derived extends Base {
private final int field2;
Derived(int field1, int field2) {
super(field1);
this.field2 = field2;
}
static class DerivedBuilder extends DerivedBuilderEx<DerivedBuilder> {
public Derived build() {
return new Derived(field1, field2);
}
}
protected static class DerivedBuilderEx<T> extends Base.BaseBuilderEx<T> {
protected int field2;
public T field2(int field2) {
this.field2 = field2;
return (T) this;
}
}
}
И создавай себе инстансы
new Derived.DerivedBuilder()
.field1(1)
.field2(1)
.build();
new Base.BaseBuilder()
field1(1)
.build();
Это для случая когда кто-то написал
log.debug(myStringVariable)
илиlog.debug("myStringVariable = {}", myStringVariable)
тоже под угрозой?Я уже не говорю о простоте реализации. Сортировка слиянием куда проще.
Утверждение про быстродействие неплохо бы подтвердить экспериментальными данными.
Вот в наше время мы ходили 15 километров в школу в мороз в темноте в гору. А отом возвращались домой в темноте в мороз в гору.
Ну или как-то так.
PS: Карлина цитирую по памяти.
гокода.Интересно когда это все рухнет под своим собственным весом.
в BaseJpaRepository добавить.
Вы конечно можете сказать что не надо переприсваивать, но хотелось бы чтобы компилятор проверял что никто не переприсвоит.
1. Плагины к эклипсу.
2. leksah
Оба рабочие, но оба не то чтобы слишком юзерфрендли. Я остановился на последнем, но по сравнению с IDE для Java это зачастую боль и страдание.
PS: если вы пользуетесь emacs, то для вас есть еще варианты, но я их в живую не видел.
И создавай себе инстансы
Достаточно сделать его явным и проблема решена.