gpt4 book ai didi

java - 有没有办法将 scala 值视为来自 java 的常量

转载 作者:搜寻专家 更新时间:2023-10-31 20:34:22 25 4
gpt4 key购买 nike

我想在我的 Scala 代码中定义一个值,并在我的 Java 代码(调用 Scala)中将该值视为常量(用于注释)。

例如:

object MyValues {
val a = 5
}

然而,当我试图在 Java 注释中使用这个值时,它给我一个错误:java: 属性值必须是常量

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyJavaAnnotation {
int aValue() default MyValues.a(); // <-- Error
}

这样调用它也不起作用:MyValues$.MODULE$.a();

我还尝试在 val 前加上 final 关键字,但没有成功。

有解决办法吗?

最佳答案

没有,据我所知。作为解决方法,您可以定义一个调用该方法的 Java 常量:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyJavaAnnotation {
int aValue() default A;
static final int A = MyValues.a();
}

认为如果不将它移动到某个地方,它可以在同一个注释中定义。

关于java - 有没有办法将 scala 值视为来自 java 的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22932770/

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