gpt4 book ai didi

java - Scala - 扫描包/文件夹以获取 Trait 的实现

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:28 25 4
gpt4 key购买 nike

如果想知道是否可以“扫描”实现特定特征并位于预定义的包和/或文件夹中的类。我的应用程序提供了一个可以实现的特征,如果能够在运行时以编程方式获取所有实现的列表,而不必先“手动注册”每个实现,那就太好了。

我找到了similar question并且接受的答案建议使用 ServiceLoader。但是,仍然需要在文本文件 (META-INF/services) 中列出可用的实现。

我知道扫描所有类以查找特定类型可能成本太高。但我认为也许将搜索限制在某个包或文件夹可能会有帮助?

最佳答案

您可以使用Reflectionsorg.clapper.util.classutil.ClassFinder库,因为“实现特征的类”被编译为实现相应接口(interface)的类。另请参阅Is it possible to get all classes that implementing an interface?以及链接的问题。

关于java - Scala - 扫描包/文件夹以获取 Trait 的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36383343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com