gpt4 book ai didi

仅用于带注释的类的 Java 方法参数

转载 作者:行者123 更新时间:2023-12-02 01:02:49 24 4
gpt4 key购买 nike

我希望我选择的标题尽可能清晰。我有用自定义注释注释的类

@MyAnnotation
public class MyClass1 {
//...
}
@MyAnnotation
public class MyClass2 {
//...
}

我有另一个类,我想用两个同名的方法来丰富它:一种方法仅采用带注释的类作为参数,另一种方法采用其他类作为参数

public class MyOtherClass {
public void myMethod(Object obj) {
//.....
}
public void myMethod (@MyAnnotation Object obj) {
// this method is applied for only classes annotated with @MyAnnotation
}
}

我知道 public void myMethod (@MyAnnotation Object obj) 是一种错误的方式,我们无法将注释作为参数传递。但我想找到合适的方法来处理这个需求。

最佳答案

您可以有一个 myMethod(Object obj) 并在其中手动检查传递给此方法的 obj 是否使用 @MyAnnotation 进行注释>(假设保留策略是在运行时保留它)。然后根据结果分派(dispatch)对一些 private void processAnnotated(Object obj)private void processNotAnnotated(Object obj) 的调用。

public void myMethod(Object obj) {
if (obj != null && obj.getClass().isAnnotationPresent(MyAnnotation.class)) {
processAnnottated(obj);
} else {
processNotAnnottated(obj);
}
}

关于仅用于带注释的类的 Java 方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60448422/

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