由于项目需要,我想获得某包下所有的类(包括该包的所有子包),从网上找了找,没有什么能用的,即使找到了写的也不怎样,效率低下。索性就自己写吧,正好也锻炼锻炼写代码的功底。特此分享出来,希望能帮到大家......

package com.itkt.mtravel.hotel.util;import java.io.File;
import java.util.ArrayList;
import java.util.List;public class PackageUtil {public static void main(String[] args) {String packageName = "com.itkt.mtravel.hotel";List<String> classNames = getClassName(packageName);for (String className : classNames) {System.out.println(className);}}public static List<String> getClassName(String packageName) {String filePath = ClassLoader.getSystemResource("").getPath() + packageName.replace(".", "\\");List<String> fileNames = getClassName(filePath, null);return fileNames;}private static List<String> getClassName(String filePath, List<String> className) {List<String> myClassName = new ArrayList<String>();File file = new File(filePath);File[] childFiles = file.listFiles();for (File childFile : childFiles) {if (childFile.isDirectory()) {myClassName.addAll(getClassName(childFile.getPath(), myClassName));} else {String childFilePath = childFile.getPath();childFilePath = childFilePath.substring(childFilePath.indexOf("\\classes") + 9, childFilePath.lastIndexOf("."));childFilePath = childFilePath.replace("\\", ".");myClassName.add(childFilePath);}}return myClassName;}
}

没什么特别复杂的,看看基本上就能懂的。给入任意包的命名空间,就能返回该包下的所有类。自我感觉还不错,简单易用,通用和扩展性也不错。其实写代码,在有熟练的基本功之后,剩下的就是组装的思路了。

============友情链接============

Java遍历jar包所有类-后续 http://blog.csdn.net/wangpeng047/article/details/8202353

Java遍历包中所有类-终续 http://blog.csdn.net/wangpeng047/article/details/8206427

Java遍历包中所有类相关推荐

  1. Java遍历包中所有类包括jar包(完整转载)

    第一部分转自 :http://blog.csdn.net/wangpeng047/article/details/8124390 第二部分转自:http://blog.csdn.net/wangpen ...

  2. Java遍历包中所有类-终续

    上一篇中,我向大家讲述了遍历jar包时所遇到的困难,本篇将向大家分享最终版代码. package com.itkt.mtravel.hotel.util;import java.io.File; im ...

  3. Java遍历包中所有类(完整转载:-))

    第一部分转自 :http://blog.csdn.net/wangpeng047/article/details/8124390 第二部分转自:http://blog.csdn.net/wangpen ...

  4. java调用包中的类_java调用另一个包中的类的方法

    java调用另一个包中的类的方法 发布时间:2020-05-18 15:04:40 来源:亿速云 阅读:199 作者:小新 今天小编给大家分享的是java调用另一个包中的类的方法,相信很多人都不太了解 ...

  5. 关于java同步包中ConcurrentLinkedQueue类的深入分析与理解

    一,官方描写叙述 一个基于连接节点的无界线程安全队列.这个队列的顺序是先进先出.队列头部的元素是留在队列中时间最长的,队列尾部的元素是留在队列中时间最短的.新元素被插入到元素的尾部,队列从队列的头部检 ...

  6. java同一个包中,类之间的的调用

    如果是静态方法,直接 类名.方法名即可,如果是非静态方法,则需new一个对象出来,然后用对象.方法名调用 如: public class A{ public static void T(){ Syst ...

  7. java 扫描类_Java扫描指定包中所有类

    1. 扫描类 import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.n ...

  8. Throwable是java.lang包中一个专门用来处理异常的类

    答:Throwable是java.lang包中一个专门用来处理异常的类.它有两个子类,即Error 和Exception,它们分别用来处理两组异常. Error用来处理程序运行环境方面的异常,比如,虚 ...

  9. 6 日期字符串转日期_Java日期时间API系列6-----Jdk8中java.time包中的新的日期时间API类...

    因为Jdk7及以前的日期时间类的不方便使用问题和线程安全问题等问题,2005年,Stephen Colebourne创建了Joda-Time库,作为替代的日期和时间API.Stephen向JCP提交了 ...

最新文章

  1. SBB:不同植被土壤中细菌古菌的群落分布模式比较
  2. python编程100例头条-今日头条python面试题之编程篇
  3. linux 修改系统时区和时间
  4. C++实现array right rotation数组右旋转(附完整源码)
  5. iview table 方法若干
  6. 【前端学习笔记】JavaScript + jQuery + Vue.js + Element-UI
  7. java epub 删除一页_java如何实现批量删除pdf指定的页数
  8. 7-4 mmh学长与出栈 (20分)
  9. 搜人2013笔试题(java)
  10. c语言中八进制输出的格式说明符,C 的输入输出格式说明符讲解
  11. 解决PHP提示Warning: Division by zero in错误
  12. C++函数模板及隐式实例化、显式实例化、显式具体化、模板重载
  13. 国防科技大学计算机考研资料汇总
  14. T(n)=2T(n/2)+n的解为T(n)=O(nlogn)的求解
  15. PhotoSweeper X for Mac(重复照片快速清理软件)
  16. G003-186-07
  17. 阿里工作9年,熬到技术总监的我,选择离职:想给还在努力的你提个醒……
  18. RK3588 ssh Failed to start OpenBSD Secure Shell server 以及E: Sub-process /usr/bin/dpkg returned无法下载软件
  19. gcc, build 错误: error: macro “__kernel_fpu_end“ passed 1 arguments, but takes just 0
  20. 浅谈视觉外观检测系统中存在哪几大技术难点?

热门文章

  1. 王者荣耀站力查询接口(每日更新)
  2. 跨云平台大数据系统迁移实践
  3. 如何像程序员一样思考
  4. Schedulis 普通版环境部署
  5. dreamweaver快捷方式
  6. MATLAB | 那些你不得不知道的MATLAB小技巧(二)
  7. 【组合数学:三】容斥原理
  8. 在中国,是OA平台胜,还是协同平台胜?
  9. postgresql源码阅读快速上手
  10. 在ppt当中加背景音乐一直播放的