Java思考 - 使用思考

时间:2018-03-26 21:43:08

标签: java reflection java-8 annotations

我正在尝试从MyTestClass获取带注释@Before的方法。包中名为ru.package的类。当我只有1个带@Before的课时,它工作正常。但是如果我使用这个注释在内部包中创建新类和新类,并且会尝试仅从MyTestClass中找到@Before注释,这段代码会给我带有这个注释的所有类的所有方法,但我只需要1.我去哪里了错误?感谢。

Reflections reflections = new Reflections(new ConfigurationBuilder().
                setUrls(ClasspathHelper.forClass(MyTestClass.class)).
                setScanners(new MethodAnnotationsScanner()));
Set<Method> methods = reflections.getMethodsAnnotatedWith(Before.class);

@Before annotation

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Before {
}

MyTestClass.class

public class MyTestClass {

    private List<String> stringList = new ArrayList<>();

    @Before
    public void setUp() {
        stringList = new ArrayList<>();
        for (int i = 0; i < 50; i++) {
            stringList.add("string " + i);
        }
    }
    //@Test and etc
}

0 个答案:

没有答案