finagle в Java - функция, функция1 и т. д.
Как создать объект Function1 для использования в методе flatMap объекта Future finagle в Java?
Пробовал это:
Function1<String, String> f = new Function1<String, String>() {
@Override
public String apply(String s) {
return null;
}
};
Но это не работает:
Ошибка:(22, 73) Java: не является абстрактным и не переопределяет абстрактный метод andThen$mcVJ$sp(scala.Function1) в scala.Function1
1 ответ
Решение
Для полноты, вот ответ из моего двухмесячного комментария выше.
Сначала для некоторого импорта:
import scala.Function1;
import scala.runtime.AbstractFunction1;
И теперь вам нужно только определить apply
метод:
Function1<String, String> f = new AbstractFunction1<String, String>() {
public String apply(String s) {
return s;
}
};
Если вы используете Finagle, библиотека Util в Twitter также предоставляет аналогичный вспомогательный класс:
import com.twitter.util.Function;
import scala.Function1;
А потом:
Function1<String, String> f = new Function<String, String>() {
public String apply(String s) {
return s;
}
};
Этот последний вариант, вероятно, лучше - мне никогда не нравилось явно использовать вещи из scala.runtime
,