不能在scala函数上使用java值作为java注释的参数
发布时间:2020-12-16 08:46:54 所属栏目:安全 来源:网络整理
导读:我在包myApp中有3个 java文件:HW. java,myAnn.java和Constants.java. Constants.java: public final class Constants { public static final String WORLD ="World";} myAnn.java: public @interface myAnn { java.lang.String name() default "";} HW.ja
我在包myApp中有3个
java文件:HW.
java,myAnn.java和Constants.java.
Constants.java: public final class Constants { public static final String WORLD ="World"; } myAnn.java: public @interface myAnn { java.lang.String name() default ""; } HW.java: class HW { @myAnn(name = Constants.WORLD) public static void main(String[] args){ System.out.println("Hi "+ Constants.WORLD); } } 我的应用程序编译并运行正常,如上所示,但我想将HW.java迁移到scala as object HelloWorld { @myAnn(name = Constants.WORLD) def main(args: Array[String]) { println("Hello " + Constants.WORLD) } } 当我尝试编译时,我得到了
如果我删除了注释,那么HelloWorld将按预期编译并执行. 为什么我可以将Constants.WORLD用作java程序中注释的参数,而不是scala程序?我可以在Constants.java中修改它以允许从java或scala中使用它吗?我无法修改MyAnn.java,但我无法迁移Constants.java. 解决方法
这是一个只在将java源文件提供给scala编译器时出现的错误,请参见问题
SI-2764.该示例在首先使用javac编译java文件然后将scalac的classpath指向生成的类文件时起作用.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |