扫描指定包名下的被注解的类
一,定义注解
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface ActivitiCallbackAnnotation {
String value() default "";
String url() default "";
String description() default "";
}
二,注解扫描
public class TestScanner {
@Test
public void test() {
// 要扫描的包
String packageName = "com.xxxxx";
Reflections f = new Reflections(packageName);
// 获取扫描到的标记注解的集合
Set<Class<?>> set = f.getTypesAnnotatedWith(ActivitiCallbackAnnotation.class);
for (Class<?> c : set) {
// 循环获取标记的注解
ActivitiCallbackAnnotation annotation = c.getAnnotation(ActivitiCallbackAnnotation.class);
// 打印注解中的内容
System.out.println(annotation.value());
}
System.out.println("--------over-------------");
}
}