簡體   English   中英

如何從Java創建ScalaZ Disjunction?

[英]How to create ScalaZ Disjunction from Java?

為什么? 我正在為Java-Scala Adapter類編寫測試。

如何在Java中為\\/[String, Int]創建左右分離?

Scala方法名稱中的符號實際上具有desugaring,用於在JVM中確定性地表示它們: \\轉向$bslash/$div-$minus 此外,Java無法理解Scala的Nothing類型,因此我們需要插入缺少參數的實際類型。 為了減輕使用Disjunction from Java的痛苦,我們可以構造一個以下的小助手(以及測試方法):

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)
    }
}

這似乎適用於Java 8,可能適用於從Java 5開始的任何版本,假設您有Scala運行時和Scalaz的兼容版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM