Функция гуавы <> с пустым возвращаемым значением? - PullRequest
2 голосов
/ 22 октября 2010

Есть ли в Googe Guava для Java внутренний класс Function с возвращаемым значением void, как в C # action? Я устал делать кучу Function<Float, Integer> с бессмысленными возвращаемыми значениями.

Ответы [ 2 ]

11 голосов
/ 22 октября 2010

Вы можете использовать Function<Float, Void> и вернуть ему null, чтобы сделать ваши намерения более ясными. Или вы можете создать свой собственный абстрактный класс, который также реализует Function<T, Void>, если хотите.

Но нет, у Guava нет ничего подобного ... у него также нет методов, предназначенных для использования чего-то подобного, таких как метод типа forEach. Если вы используете методы Guava, которые используют Function s с Function<Float, Void> или что-то подобное ... я бы не советовал, так как методы не предназначены для этого (даже если вы можете с некоторыми из них). Если вы используете для этого свои собственные методы, я бы сказал, просто создайте свой собственный интерфейс, например Callback<T>.

1 голос
/ 31 октября 2014

Мне это кажется противоречивым; Вы хотите использовать функцию (которая вычисляет значение на основе входного значения), но не хотите возвращать значение (что обычно делают функции; именно так они должны сообщать возвращаемое значение вызывающей стороне).

Так почему бы просто не сделать

    for (Value v : values) {
        doYourThing(v);
    }

Это более компактно, чем создание функции, и работает лучше. На самом деле, если я правильно понял ваше использование, использование Function не принесло бы никаких преимуществ, а просто добавило бы немного стандартного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...