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