gpt4 book ai didi

java - 如何从 Java 创建 ScalaZ 析取?

转载 作者:行者123 更新时间:2023-11-29 04:31:33 28 4
gpt4 key购买 nike

为什么?我正在为 Java-Scala 适配器类编写测试。

如何在 Java 中为 \/[String, Int] 创建左右析取?

最佳答案

Scala方法名中的符号其实是有脱糖的,用来在JVM中确定性地表示它们:\转为$bslash/转为$div-$minus。此外,Java 无法理解 Scala 的 Nothing 类型,因此我们需要插入一个实际类型的缺失参数。为了减轻从 Java 使用 Disjunction 的痛苦,我们可以构建以下小助手(连同测试方法):

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。

关于java - 如何从 Java 创建 ScalaZ 析取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43615995/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com