Вот служба зависимости:
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);