java - 如何从 jar 访问 package-info.java 运行时中的包级注释?

标签 java annotations

如何访问类路径中 jar 中的所有包信息类?我想访问这些类中使用的包级注释。

我想执行以下步骤:-

  1. 找到所有的 package-info.java 类
  2. 获取他们的包裹
  3. 获取注解@PackageOwner

最佳答案

有一个更简单的解决方案,不涉及外部 API。 您可以从位于您想要注释的包中的类中获取 Package 对象。 然后通过调用包上的方法 getAnnotations() 来获取这些注释:

import java.lang.annotation.Annotation;

public class PackageAnnotationsTest {

    public static void main(String[] args) {
        Package myPackage = AClassInMyPackage.class.getPackage();
        Annotation[] myPackageAnnotations = myPackage.getAnnotations();
        System.out.println("Available annotations for package : " + myPackage.getName());
        for(Annotation a : myPackageAnnotations) {
            System.out.println("\t * " + a.annotationType());
        }
    }
}

多亏了这个link这在这个问题上帮助了我。 我首先阅读了这个线程和 Parikshit 的回答,但我不想使用外部 api。

关于java - 如何从 jar 访问 package-info.java 运行时中的包级注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33780648/

相关文章:

java - while循环输出

java - 请解释一下我的程序的执行顺序

java - JPQL有 "SUBSET"函数吗

Android 架构蓝图 [todo-mvp-dagger] @ActivityScoped, @FragmentScoped

java - 获取 "WELD-001408 Unsatisfied dependencies error when deploying a class injected with an interface"

Java,除了其中之一之外,如何阻止继承类调用特定的抽象类构造函数?

java - 使用@Cacheable 注释的真实世界 DAO 的最佳实践

android - Lombok 不工作 Android Studio 3.0

c++ - 使用 gcc 插件获取类注释

doctrine-orm - 学说注解常量串联