我同意乔普·艾根(Joop
Eggen)的观点,并认为他的方法是一个好的方法。在Android中,我尝试避免使用通常的Web应用程序功能,这些功能会导致应用程序长时间启动。我不使用反射或包裹扫描。
但是,如果您想....如果我正确理解,则需要为一个类添加注释。除了使用批注之外,您还可以使用标记器界面(以便拥有更多的可能性)。
1)看注释:Java自定义注释和动态加载
在问题中有一个实现可以回答您的问题。注释:在运行时扫描Java注释
- 接口:查找实现接口的Java类
- 接口:与Java 1.5中的ServiceLoader相似吗?
- 接口:如何以Java编程方式获取接口的所有实现的列表?
- 接口:由于该方法昂贵,因此ServiceLoader可能会在执行时间和舒适性之间做出折衷,因为它仅加载服务文件中给定的类。另一方面,如果包中仅包含具有特定接口的类,则ServiceLoader不会那么快。
我更喜欢AndroidAnnotations的工作方式(最好是集成AndroidAnnotations):它会自动添加一个额外的编译步骤,使用标准的Java
Annotation处理工具生成源代码。因此,您无需执行运行时扫描,而是根据编译时生成的注释执行代码。
我认为Bean /
EBean注释可以为您工作(仅单个类):https
:
//github.com/excilys/androidannotations/wiki/Enhance%20custom%20classes
扫描功能不可用,请参见此线程
3)编写自己的注释处理器- 请参阅APT(注释处理工具)。想法是生成一个静态函数,该函数返回带注释的类的列表,因此不需要类扫描。
- 一个很好的资源是http://javadude.com/articles/annotations/index.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)