文档章节

Java获取所有子类、实现类

哈特中尉
 哈特中尉
发布于 2015/12/30 21:06
字数 274
阅读 2.5K
收藏 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(技术副总裁)
私信 提问
加载中

评论(0)

Java并发包源码学习之AQS框架(一)概述

AQS其实就是这个类。 阅读Java的并发包源码你会发现这个类是整个的核心之一,也可以说是阅读整个并发包源码的一个突破口。 比如读的源码你会发现其核心是它的一个内部类: 整个包中很多类的结...

zhanjindong
2015/03/10
0
0
spring源码解读之 JdbcTemplate源码

原文:https://blog.csdn.net/songjinbin/article/details/19857567 在Spring中,JdbcTemplate是经常被使用的类来帮助用户程序操作数据库,在JdbcTemplate为用户程序提供了许多便利的数据库操...

osc_joe3czc9
2019/06/02
1
0
Java面向对象概述和三大特性

Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心。围绕着 Java 类和 Java 对象,有三大基本特性:封装是 Java 类的编写规范、继承是类与类之间联系的一种形式、而多态为系统...

osc_s03aucrm
2019/06/03
3
0
20180809-Java继承

// A.java public class A{ private int i; protected int j; public void func(){ } } // B.java public class B extends A{ } 以上的代码片段说明,B由A继承而来的,B是A的子类。而A是Obj......

osc_o9hwrm96
2018/10/19
5
0
浅谈Scala的特质(trait)

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

mj4738
2011/11/14
1.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

史上最全的“文件或目录损坏且无法读取”的解决办法大集合

问题描述: G盘打不开文件或目录损坏且无法读取,是因为这个I盘的文件系统内部结构损坏导致的。史上最全的“文件或目录损坏且无法读取”的解决办法大集合具体的恢复方法看正文 工具/软件:极...

计算无敌
56分钟前
9
0
2048游戏的最佳算法是什么? - What is the optimal algorithm for the game 2048?

问题: I have recently stumbled upon the game 2048 . 我最近偶然发现了2048游戏。 You merge similar tiles by moving them in any of the four directions to make "bigger" tiles. 您可......

javail
今天
9
0
Spring Cloud Ribbon 客户端负载均衡

Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等,内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略: 简单轮询负载均衡 加权轮询负载均衡 区域...

泥瓦匠BYSocket
今天
7
0
为什么在Python 3中“范围(1000000000000000(1000000000000001))”这么快?

问题: It is my understanding that the range() function, which is actually an object type in Python 3 , generates its contents on the fly, similar to a generator. 据我了解, ra......

技术盛宴
今天
9
0
OSChina 周四乱弹 —— 卖全家桶!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :陈慧娴的单曲《与泪抱拥》 陈慧娴的嗓音加上向雪怀的词,这样的经典组合真不多。#今日歌曲推荐# 《与泪抱拥》- 陈慧娴 手机党少年...

小小编辑
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部