java特殊类型_java中如何查找某个特定类型作为形参的方法
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class ClassUtil {
/**
* 获取同一路径下所有子类或接口实现类
*/
public static List> getAllAssignedClass(Class> cls) throws IOException,
ClassNotFoundException {
List> classes = new ArrayList>();
for (Class> c : getClasses(cls)) {
if (cls.isAssignableFrom(c) && !cls.equals(c)) {
classes.add(c);
}
}
return classes;
}
/**
* 取得当前类路径下的所有类
*/
public static List> getClasses(Class> cls) throws IOException,
ClassNotFoundException {
String pk = cls.getPackage().getName();
String path = pk.replace('.', '/');
ClassLoader classloader = Thread.currentThread().getContextClassLoader();
URL url = classloader.getResource(path);
return getClasses(new File(url.getFile()), pk);
}
/**
* 迭代查找类
*
*/
private static List> getClasses(File dir, String pk) throws ClassNotFoundException {
List> classes = new ArrayList>();
if (!dir.exists()) {
return classes;
}
for (File f : dir.listFiles()) {
if (f.isDirectory()) {
classes.addAll(getClasses(f, pk + "." + f.getName()));
}
String name = f.getName();
if (name.endsWith(".class")) {
classes.add(Class.forName(pk + "." + name.substring(0, name.length() - 6)));
}
}
return classes;
}
}
java特殊类型_java中如何查找某个特定类型作为形参的方法相关推荐
- double java 精度丢失_java中double和float精度丢失问题及解决方法
在讨论两位double数0.2和0.3相加时,毫无疑问他们相加的结果是0.5.但是问题总是如此吗? 下面我们让下面两个doubles数相加,然后看看输出结果: @Test public void te ...
- java中两种异常类型_Java中的三种异常类型
java中两种异常类型 Errors are the bane of users and programmers alike. Developers obviously don't want thei ...
- java 中entry类型_java中的Entry是什么类型
publicstaticinterfaceMap.Entry的API介绍如下: 映射项(键-值对).Map.entrySet方法返回映射的collection视图,其中的元素属于此类.获得映射项引用的 ...
- java 获取星期几_java中获取日期是星期几的两种方法
java中取得指定日期是星期几可以采用下面两种方式取得日期是星期几:(推荐:java视频教程) 1.使用Calendar类//根据日期取得星期几 public static String getWee ...
- java 数组参数_java中 数组可以作为形式参数传递到调用的方法中吗?要怎么操作?...
展开全部 可以,操作代码如下: public class ArrTest{ public static void doTest(String[] args){ for(int i=0;i System ...
- java wait 参数_java中wait()和join()方法的区别是什么
java中wait()和join()方法的区别是:存在不同的java包中:wait()方法用于线程间通信,它所施加的等待状态的线程可以被启动:join()方法用于在多个线程之间添加排序,它所施加的等待 ...
- java ref 应用类型_Java中的四种引用类型比较
1.引用的概念 引用这个概念是与JAVA虚拟机的垃圾回收有关的,不同的引用类型对应不同的垃圾回收策略或时机. 垃圾收集可能是大家感到难于理解的较难的概念之一,因为它并不能总是毫无遗漏地解决Java运行 ...
- java 内部变量_java 中的内置数据类型
1, 基本数据类型 Java是强类型语言, 对于每一种数据都定义了类型,基本数据类型分为数值型,字符型,布尔型.数值型又分为了整型和浮点型. 整型又分为byte, int, short long. ...
- java 无符号 类型_java中符号类型和无符号类型的问题分析
一 参考博文 二 java中的无符号数和有符号数 在计算机中,可以区分正负的类型,称为有符号类型,无正负的类型,称为无符号类型. 使用二进制中的最高位表示正负 计算机中用补码表示数值:另外,用二进制的 ...
最新文章
- 头像秒变像素风,宅男大叔自学AI打造大师级水准,火爆推特
- 如何查看已安装的CentOS版本信息
- java http头信息
- python 随机取列表值 重复_python怎么随机取列表的值
- SAP Cloud for Customer Cloud Application Studio的Trace功能
- UI5 repository mapping and Component-preload.js UI5RepositoryPathMapping.xml
- sqlyog如何设置.时提示字段名_雷神新用户手册:拿到新电脑时如何简易设置参数!...
- java 和javafx_Java,JavaFX的流利设计风格文本字段和密码字段
- leetcode 45. 跳跃游戏 II 思考分析
- php mysql 权重_PHP对MySql的常用操作
- shell基础——变量定义
- 鸿蒙系统是不是推迟发布了,鸿蒙系统2.0来了,华为Mate40推迟发布
- 超好用的IDEA插件汇总
- LVM与软RAID整理笔记
- 电脑文件分区壁纸--超级马里奥、樱桃小丸子主题
- mac更新完后读取不出移动硬盘的问题解决
- javaScript前端上传文件到腾讯云(对象存储)
- 计算机端口连接失败,电脑Telnet命令提示在端口23连接失败的解决办法
- ios端 QQ 内语音通话录制-5823错误原因细究
- 【Kotlin-Room】 cannot pick a constructor since multiple constructors are suitable