Эта точка НЕ перед пустым пространством, а для вызова метода у объекта, который возвращается из предыдущего метода -- так называемый "гладкий" или "плавный" программный интерфейс.
Шаблон проектирования Builder
, показанный в вопросе,-- один из наиболее популярных способов применения "плавного" интерфейса для создания объектов со множеством параметров (статья на хабре).
Упрощенно говоря, для некоего класса InlineKeyboard
создаётся класс-строитель InlineKeyboardBuilder
, с теми же полями, что и поля в основном классе, но сеттеры которого возвращают ссылку на текущий экземпляр билдера.
Также реализуется метод build()
, возвращающий экземпляр нужного класса.
public class InlineKeyboardBuilder {
private String text;
private String callbackData;
public InlineKeyboardBuilder() {}
public InlineKeyboardBuilder text(String text) {
this.text = text;
return this;
}
public InlineKeyboardBuilder callbackData(String data) {
this.callbackData = data;
return this;
}
public InlineKeyboard build() {
return new InlineKeyboard(text, callbackData);
}
}
Классы-билдеры удобно генерить при помощи соответствующей Lombok аннотации @Builder
.