Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 注释类@折旧_Java_Annotations - Fatal编程技术网

Java 注释类@折旧

Java 注释类@折旧,java,annotations,Java,Annotations,我想为方法实现一个注释,它会让我知道那些被注释的方法在哪里调用,就像官方的@deprecated注释一样 如何获取给定带注释方法的所有调用方法的列表?我认为可能会帮助您: 要查找此带注释的方法(从),请执行以下操作: 使用 原料药 从基本包扫描类路径的组件提供程序。然后将排除和包含筛选器应用于结果类 寻找候选人 我想这可能对你有帮助: 要查找此带注释的方法(从),请执行以下操作: 使用 原料药 从基本包扫描类路径的组件提供程序。然后将排除和包含筛选器应用于结果类 寻找候选人 在编译时/在ID

我想为方法实现一个注释,它会让我知道那些被注释的方法在哪里调用,就像官方的@deprecated注释一样

如何获取给定带注释方法的所有调用方法的列表?

我认为可能会帮助您:

要查找此带注释的方法(从),请执行以下操作:

使用

原料药

从基本包扫描类路径的组件提供程序。然后将排除和包含筛选器应用于结果类 寻找候选人

我想这可能对你有帮助:

要查找此带注释的方法(从),请执行以下操作:

使用

原料药

从基本包扫描类路径的组件提供程序。然后将排除和包含筛选器应用于结果类 寻找候选人


在编译时/在IDE中?如果你真的想要,你需要自己编写工具。类似于或@zapl的东西,我想跟踪调用gcm.send的点,不能从主线程调用。在编译时/在IDE中是否可能重复?如果你真的想要,你需要自己编写工具。类似于或@zapl的东西,我想跟踪调用gcm.send的点,不能从主线程调用。可能的重复我不想找到带注释的方法,而是要找到调用带注释方法的方法。我非常感谢您的帮助,但我想在编译时像android lint一样这样做。也许我的问题不够清楚。不幸的是,在结构化搜索中无法找到对带注释方法的方法调用:您是否尝试在中搜索插件?如果真的需要,你可以尝试创建自己的自定义插件。我不想找到带注释的方法,而是调用带注释方法的方法。我很感谢你的帮助,但我想在编译时像android lint那样做。也许我的问题不够清楚。不幸的是,在结构化搜索中无法找到对带注释方法的方法调用:您是否尝试在中搜索插件?如果确实需要,您可以尝试创建自己的自定义插件
ClassPathScanningCandidateComponentProvider scanner =
new ClassPathScanningCandidateComponentProvider(<DO_YOU_WANT_TO_USE_DEFALT_FILTER>);

scanner.addIncludeFilter(new AnnotationTypeFilter(<TYPE_YOUR_ANNOTATION_HERE>.class));

for (BeanDefinition bd : scanner.findCandidateComponents(<TYPE_YOUR_BASE_PACKAGE_HERE>))
    System.out.println(bd.getBeanClassName());
public class Foo {
  @YourAnnotation
  public int power(int x, int p) {
    return Math.pow(x, p);
  }
}

@Aspect
public class MethodLogger {
  @Around("execution(* *(..)) && @annotation(YourAnnotation)")
  public Object around(ProceedingJoinPoint point) {
    Logger.info(
      "call by method" + MethodSignature.class.cast(point.getSignature()).getMethod().getName()
    );
    Object result = point.proceed();
    return result;
  }
}