Вот служба зависимостей:
public class Service1 {}
Scala-код, который использует его через считыватель:
object TupleEx {
type FailFast[A] = Either[List[String], A]
type Env[A] = ReaderT[FailFast, Service1, A]
import cats.syntax.applicative._
import cats.instances.either._
def f:Env[Int] = 10.pure[Env]
}
Java-тест, в котором я пытаюсь внедрить Service1:
@Test
public void testf() {
Service1 s = new Service1();
TupleEx.f().run(s);
}
Я получаю исключение:
Ошибка: (10, 16) java: метод, запущенный в классе cats.data. Kleisli нельзя применить к данным типам;обязательно: аргументы не найдены: com.savdev.Service1 причина: фактические и формальные списки аргументов различаются по длине
Хотя в Scala я мог бы запустить его как:
TupleEx.f().run(s);