gpt4 book ai didi

java - 你如何让java方法注释在scala中工作

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

我有两个项目,一个 scala 项目和一个 java 项目。我的 scala 项目在构建路径中引用了 java 项目。在我的 java 项目中,我声明了以下注释:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
public String Name();
}

在我的 Scala 项目中,我正在注释一些方法。即

class MyClass {
...
@MyAnnotation(Name="Blah")
def myMethod() {
...
}
}

在某个地方的另一个文件中,我试图提取注释。

var methods = myClassInstance.getClass().getDeclaredMethods()
var myMethod : Method = null
for (method <- methods) {
if (method.getName().equals("myMethod")) {
myMethod = method
}
}
var annotations = myMethod.getDeclaredAnnotations()

不幸的是,annotations 始终是一个空数组。我是在做一些根本性的错误,还是只是遗漏了一些小问题?谢谢!

编辑最初,我用 myAnnotation 注释 myMethod 两次,正如有人指出的那样,这是不正确的。事实证明这不是问题所在。我仍然得到一个用于 annotations 的空数组。没有抛出异常。

最佳答案

我试过你的代码,问题是你对 myMethod 使用了两次@MyAnnotation,这应该引发 AnnotationFormatError: Duplicate annotation for class

当我改为使用它一次时,反射只检索注释。

关于java - 你如何让java方法注释在scala中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13944819/

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