1
왜? Java-Scala Adapter 클래스에 대한 테스트를 작성하고 있습니다.Java에서 ScalaZ Disjunction을 만드는 방법은 무엇입니까?
Java에서 \/[String, Int]
에 대한 왼쪽 및 오른쪽 결합을 만드는 방법은 무엇입니까? 스칼라 방법 이름에
왜? Java-Scala Adapter 클래스에 대한 테스트를 작성하고 있습니다.Java에서 ScalaZ Disjunction을 만드는 방법은 무엇입니까?
Java에서 \/[String, Int]
에 대한 왼쪽 및 오른쪽 결합을 만드는 방법은 무엇입니까? 스칼라 방법 이름에
기호 실제로 결정적으로 JVM에서 그들을 나타내는 데 사용 desugaring을 가지고 : \
이 $bslash
, /
에 $minus
-$div
및 -
으로 변합니다. 또한 Java는 Scala의 Nothing 타입을 이해할 수 없기 때문에 누락 된 인수의 실제 유형을 삽입해야합니다. 자바에서 분리를 사용하는 고통을 완화하기 위해, 우리는 (시험 방법과 함께)는 다음과 같은 작은 도우미를 구성 할 수 있습니다
import scalaz.*;
public class JavaDisjunctionHelper {
public static <A, B> $bslash$div<A, B> left(A a) {
return new $minus$bslash$div(a);
}
public static <A, B> $bslash$div<A, B> right(B b) {
return new $bslash$div$minus(b);
}
public static void main(String[] args) {
$bslash$div<String, Integer> p = left("z");
$bslash$div<String, Integer> q = right(3);
System.out.println(p); // -\/("z")
System.out.println(q); // \/-(3)
}
}
당신 가정, 자바 (8) 및 Java 5부터 아마 모든 버전에서 작동하는 것 같다
스칼라 런타임과 스칼라 스의 호환 버전이 있어야합니다.