我们可以只加载那些用自定义注释注释的类吗?

时间:2018-01-22 13:29:05

标签: java annotations

我遇到了一个关于自定义注释的问题。 题 :- 假设我们已经创建了一个自定义注释,并将它应用于某些类(假设在我们的应用程序/模块中我们总共有10个类,我们只在5个类上应用了自定义注释,其余5个注释了正常的内置注释,如@在我们的应用程序中自动装配,@ COmponent等等。

现在,当我加载整个应用程序时,是否可以加载,或者我们可以说只实例化我用自定义注释注释的那些类。

有可能吗?

2 个答案:

答案 0 :(得分:0)

假设

@MyAnnotation
public class MyClass {
   ...
}

然后

if (MyClass.class.isAnnotationPresent(MyAnnotation.class)) {
   MyClass myObj = MyClass.newInstance();
}

将有条件地实例化带注释的类。

答案 1 :(得分:0)

使用entryClass.getAnnotation()我们可以加载我们自定义注释的类。 String jarFile = "path/to/jarfile.jar"; DexClassLoader classLoader = new DexClassLoader( jarFile, "/tmp", null, getClass().getClassLoader()); Class<?> myClass = classLoader.loadClass("MyClass");