카테고리 없음
org.reflection을 사용하여 와일드 카드를 사용하여 패키지 클래스를 가져올 수 있습니까?
기록만이살길
2021. 2. 24. 09:04
org.reflection을 사용하여 와일드 카드를 사용하여 패키지 클래스를 가져올 수 있습니까?
1. 질문(문제점):
나는 사용하고 있었다
Reflections reflections = new Reflections("com.mypackage.root", new MethodAnnotationsScanner());
하지만이 aproach를 사용하면 필요하지 않은 패키지 수준의 많은 주석이 반환됩니다. 내가 정말로 원하는 것은 와일드 카드를 사용하여 깊은 패키지 수준 만 되 돌리는 것입니다.
Reflections reflections = new Reflections("com.mypackage.root.*.deep", new MethodAnnotationsScanner())
내가 정말로 필요한 메소드가 ".deep"패키지 수준에 있기 때문에 ... FilterBuilder와 많은 조합을 시도 해본 다음 내가 뭔가 잘못하고 있는지 또는이 API로 이것이 불가능한지 모르겠습니다.
2. 해결방안:
시험
Reflections reflections = new Reflections("com.mypackage.root", new MethodAnnotationsScanner());
Set<Method> methods = reflections
.getMethodsAnnotatedWith(MyAnnotation.class).stream()
.filter(method -> method.getDeclaringClass().getPackage().getName().matches("com.mypackage.root.*.deep"))
.collect(Collectors.toSet());
65820443