簡體   English   中英

如何通過Java中的Reflection API加速類掃描?

[英]How to speed up the class scan via Reflection API in Java?

我使用org.reflections庫掃描ClassPath並獲取類。 這是我的代碼:

Reflections ref = new Reflections();
Set<Class<? extends Service>> classes = new HashSet<>();
for (Class<? extends Service> subType : ref.getSubTypesOf(Service.class)) {
    if (!Modifier.isAbstract(subType.getModifiers())) {
        classes.add(subType);
    }
}

但是我遇到了一個問題。 這需要太多時間。 同時我無法設置包裹

new Reflections("my.pack");

因為我想保留將來添加Service類的功能。 我如何加快這個過程? 是否可以排除rt.jar包?

使用FilterBuilder至少排除java根包。

這可能有助於指定SubTypesScanner因為這就是您正在執行的操作。

Reflections ref = new Reflections(new SubTypesScanner(),
                                  new FilterBuilder().excludePackage("java"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM