Junior — Middle
96
Kann man Methoden zum Annehmen und Zurückgeben von Werten in funktionalen Schnittstellen erstellen?
Antwort von AI
sobes.tech KI
В функциональном интерфейсе в Java обязательно должен быть ровно один абстрактный метод (SAM — Single Abstract Method). Этот метод и определяет сигнатуру для приема и возврата значений.
Можно создавать дополнительные методы, но:
- Они должны быть либо default (с реализацией),
- Либо static,
- Либо методы из
java.lang.Object(например,equals,hashCode,toString).
Абстрактных методов, кроме одного, быть не должно.
Пример:
@FunctionalInterface
public interface MyFunction {
int apply(int x); // основной абстрактный метод
default int doubleApply(int x) { // дополнительный метод с реализацией
return apply(x) * 2;
}
static int staticMethod() { // статический метод
return 42;
}
}
Таким образом, метод для приема и возврата значений — это и есть единственный абстрактный метод интерфейса. Другие методы с реализацией создавать можно, но они не влияют на функциональность интерфейса.