public static class Builder {
public Builder() {
this.headers = new TreeMap(String.CASE_INSENSITIVE_ORDER);
this.parameters = new TreeMap();
this.serverPort = 80;
}
public DefaultSavedRequest.Builder setCookies(List<SavedCookie> cookies) {
this.cookies = cookies;
return this;
}
Возвращается ссылка на себя. Этот "шаблон" позволяет писать такой код:
Builder builder = new Builder().setCookies(...).setShmookies(...).setSomethingElse(...);
Возвращается ссылка на текущий экземпляр объекта.
Это такой шаблон - Fluent Interface.
Приведу цитату:
Текучий интерфейс хорош тем, что упрощается множественный вызов методов одного объекта. Обычно это реализуется использованием цепочки методов, передающих контекст вызова следующему звену
Такой стиль косвенно полезен повышением наглядности и интуитивности кода. Однако может весьма пагубно сказаться на отладке, если цепочка действует как одно выражение, куда отладчик не всегда может установить промежуточную точку останова.
——
Вот что пишет про это господин Фаулер
Сборка персонального компьютера от Artline: умный выбор для современных пользователей