gpt4 book ai didi

Java - 加载带注释的类

转载 作者:IT老高 更新时间:2023-10-28 20:34:33 25 4
gpt4 key购买 nike

我知道在 Java 中加载插件类的工具非常多,但今天我想到了一个想法。

如果我在包“org.home.junk”中有一堆带注释和未注释的类(使用注释“@AnnotatedClass”进行注释)并且这些类具有带有注释“@AnnotatedMethod”的注释方法。

第一个问题:我能否在运行时获取该特定包中所有类的数组/集合,以便我可以检查哪些类被注释并创建它们的实例。 (但我知道如何检查 Some.class 是否有本指南提供的注释:http://isagoksu.com/2009/development/java/creating-custom-annotations-and-making-use-of-them/)

第二个问题: - 如果我可以在第一个问题中做我想做的事 - 这样做最政治化的方式是什么?

我相信这是可能的,因为我了解 JUnit 以某种类似的方式加载测试用例类。

如果这可以用最少的第三方库等来完成,那就太酷了——如果可能的话:)

最佳答案

第一个答案:看看this project .

Reflections reflections = new Reflections("org.home.junk");
Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(javax.persistence.Entity.class);

它从 org.home.junk 中返回所有带有 javax.persistence.Entity 注释的类。

第二个答案:要创建上述类的新实例,您可以这样做

for (Class<?> clazz : annotated) {
final Object newInstance = clazz.newInstance();
}

希望这能回答所有问题。

关于Java - 加载带注释的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12021543/

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