2017-04-25 2 views

답변

3

기호 실제로 결정적으로 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부터 아마 모든 버전에서 작동하는 것 같다

스칼라 런타임과 스칼라 스의 호환 버전이 있어야합니다.