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

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. spring入门(二) 使用注解代替xml配置
  2. linux boa服务器访问 404,Linux上boa服务器的配置和使用
  3. Keil C 中全局变量 extern 的使用
  4. SprimgMVC学习笔记(十)—— 拦截器
  5. Android --- This project contains Java compilation errors,which can cause rendering failures for
  6. 【算法】螺旋方阵 上交OJ1021
  7. Android代码导出数据库,导入/导出到android sqlite数据库
  8. TX2+GStreamer+OpenCV读取显示网络摄像头
  9. 单目可见光静默活体检测 Binary or Auxiliary Supervision论文解读
  10. mysql实战20 | 幻读是什么,幻读有什么问题?
  11. 组装高性能服务器配置,高性能计算服务器参考配置需求.doc
  12. 西门子1200伺服步进FB块程序 含触摸屏程序,SCL写的FB块,中文注释详细
  13. 扫描域名和扫描IP的区别
  14. 学生成绩分析系统后端函数解释(Python)
  15. PHP, 将 PDF/Word/PPT 文档转换成图片生成长图
  16. 【杂】Excel中匹配筛选操作VLOOKUP 函数使用问题排查
  17. CS5211设计方案|替代CH7511B设计电路|EDP转LVDS转接板设计参考电路
  18. docker_周阳(一)
  19. 计算分辨率长宽比(等比例缩放)
  20. 生产日期当天算一天吗,生产日期当天算一天吗

热门文章

  1. 微信小程序 社区居民健康疫情服务系统
  2. 给在北漂准备租房的菜鸟一点建议
  3. Laravel-shop 前端布局
  4. 2018年最新人工智能书单,总有一本你爱的
  5. spring创建bean模式singleton与prototype的区别
  6. 第12周 oj 汉诺塔问题
  7. 多重影分身(c++题解)
  8. 银保监回应“网点收缩”,远程服务大有所为,容联云助力远程银行加速建设
  9. 校园跑腿,究竟有什么样的优势以及功能?
  10. 【实用的开源项目】使用服务器部署Sharry:真的很好用的文件分享程序