文档章节

Java获取所有子类、实现类

哈特中尉
 哈特中尉
发布于 2015/12/30 21:06
字数 274
阅读 353
收藏 1
功能说明:下拉选择某个接口的所有实现类,方面运维人员通过界面配置相关功能,而不是手动复制粘贴。
需求说明:扫描jvm中某个接口的所有实现类;扫描某个类的所有子类。


需要依赖第三类库:reflections  
google code项目主页: https://code.google.com/p/reflections/

已经知道继承关系:

Java测试代码:

public static void main(String[] args) {
		Reflections reflections = new Reflections("com", new SubTypesScanner(true));
		Set<String> allClasses = reflections.getStore().getSubTypesOf(IDog.class.getName());
		for (String string : allClasses) {
			System.out.println(string);
		}
	}

程序执行结果:

2015-12-30 20:55:35 org.reflections.Reflections scan 
信息: Reflections took 108 ms to scan 4 urls, producing 191 keys and 645 values  
com.dog.IBlackDog 
com.dog.abs.AbstractWhiteDog 
com.dog.abs.impl.SmallWhiteDog 
com.dog.abs.AbstractBlackDog 
com.dog.abs.impl.SmallBlackDog 
com.dog.IWhiteDog


环境说明:win7+jdk1.6.0_45

扩展说明(多结果稍作过滤可以实现):
1.扫描所有接口的实现类
2.扫描所有接口的非抽象的实现类
3.扫描类的子类
4.扫描接口的子接口

© 著作权归作者所有

共有 人打赏支持
哈特中尉
粉丝 0
博文 7
码字总数 4212
作品 0
西安
CTO(技术副总裁)
私信 提问
JAVA接口的概念、分类及与抽象类的区别

Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(...

郭二翔
2011/12/17
0
0
【JVM】浅谈双亲委派和破坏双亲委派

一、前言 笔者曾经阅读过周志明的《深入理解Java虚拟机》这本书,阅读完后自以为对jvm有了一定的了解,然而当真正碰到问题的时候,才发现自己读的有多粗糙,也体会到只有实践才能加深理解,正...

joemsu
07/14
0
0
Mybatis 类型转换源码分析

本文将从以下几个方面进行介绍 相关文章 前言 类型处理器 类型注册器 别名注册器 相关文章 Mybatis 解析配置文件的源码解析 前言 JDBC 提供的数据类型和Java的数据类型并不是完全对应的,当 ...

tsmyk0715
11/04
0
0
浅谈Scala的特质(trait)

虽然scala的特征相当于Java的接口,但是在使用上,我觉得scala的特征更像抽象类。 比如我们要开发一个2D图形库,必然涉及到矩形对象的定义。 一个矩形可以由对角线上的两个端点唯一确定。矩形...

mj4738
2011/11/14
0
0
Java中ThreadLocal的设计与使用

ThreadLocal是什么 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是thread local variable(线程局部变量)。也许把它命名为ThreadLocalVar更...

DragonRace
2013/11/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
32分钟前
2
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
57分钟前
6
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
6
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
5
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部