gpt4 book ai didi

java - 在 Java 代码中使用 Scala 类型别名

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:14:23 25 4
gpt4 key购买 nike

假设我在 scala 中将类型别名定义为

object Foo {
type Bar = Option[String]
}

看起来我不能像那样在 Java 代码中引用别名(它只是提示找不到符号):

import Foo.*;

public class Cafebabe {
void bar(Bar x) {
//...
}
}

我也尝试过静态导入。

(更具体地说,我有我无法更改的 java 反射代码,它需要知道参数类型并且我需要向它提供 Bar 别名)。

我知道,我可以在 Scala 中创建包装器

class BarWrapper(value: Bar)

但也许我错过了一些其他方式?

最佳答案

类型别名仅对 Scala 编译器可见,并且与泛型类型一样,它们不会出现在 JVM 类文件中的任何位置。

如果您使用的是 Java,您将无法使用无别名类型 Option[String]因为 javac 无法知道类型别名 Bar您在 Scala 代码中声明的。无论您在哪里使用 Bar只需使用 Option[String] (在 Java 中是 scala.Option<String>),它应该可以正常工作。

关于java - 在 Java 代码中使用 Scala 类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673839/

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