Встречается на 2% собеседований по Java

Как будешь писать паттерн монада

В Java монада — это не явный паттерн, а концепция, но её можно реализовать через обёртки (wrapper), например Optional или Stream.

Пример монады Maybe (упрощённый Optional):

java
public class Maybe<T> {
    private final T value;

    private Maybe(T value) {
        this.value = value;
    }
text
public static <T> Maybe<T> of(T value) {
    return new Maybe<>(value);
}

public static <T> Maybe<T> empty() {
    return new Maybe<>(null);
}

public <R> Maybe<R> flatMap(Function<T, Maybe<R>> mapper) {
    return value != null ? mapper.apply(value) : Maybe.empty();
}

}

text

**Использование:**  
```java
Maybe.of(5)
    .flatMap(x -> Maybe.of(x * 2))
    .flatMap(x -> Maybe.empty()); // Результат: Maybe.empty()

Ключевые моменты:

  • Обёртка значения (Maybe<T>).
  • Метод flatMap для цепочки операций.
  • Обработка отсутствия значения (null-safe).

Это упрощённая реализация, аналогичная Optional из Java 8+.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы