Подтвердить что ты не робот

Java-эквивалент .NET Action <T> и Func <T, U> и т.д.

Существуют ли в Java стандартные типы "обратного вызова" или "функции/метода", например System.Action<T> или System.Func<T,U> в .NET?

В моем конкретном случае мне нужен класс, который обертывает метод, который принимает один (общий) параметр типа T и ничего не возвращает (т.е. void).

Да, достаточно легко создать такой класс/интерфейс для себя, но я бы предпочел стандартный класс библиотеки, если он есть.

4b9b3361

Ответ 1

Я не верю ни в что в стандартной библиотеке, нет (на момент написания, 2010). В других библиотеках есть такие вещи, как Guice Provider<T> и Guava Function<F, T>, Supplier<T> и Predicate<T>... поэтому, если вы уже используете библиотеки, вы можете посмотреть, что они предоставляют в этом направлении.

(EDIT: Как уже отмечалось, это интерфейсы, которые возвращают вещи, похожие на Func<T, U>, но не похожие на Action<T>.)

Ответ 2

Стандартная библиотека Java не предоставляет таких классов.

Вы можете использовать функциональную Java библиотеку, которая предоставляет fj.F1<T, fj.Unit>, которая в основном эквивалентна System.Action<T> из .NET.