- 浏览: 342486 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
努力吧飞翔:
...
[ExtJS] MVC应用架构示例 -
coolnight:
[Maven]Nexus 安装与配置 -
Kevin_jiang2011:
官网的文档写的不好。 简单的执行命令,又要重新下载一个ecli ...
jBPM5 入门 -
litterdeer:
好东西....
[ExtJS] MVC应用架构示例 -
basherone:
可以用,谢谢了
[ExtJS] MVC应用架构示例
没写完。。。有兴趣的可以补充。
package cn.bisoft.java.deep; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.util.Arrays; import java.util.HashSet; import java.util.Set; /** * 反射工具类. * * @author tangliang * */ @SuppressWarnings("rawtypes") public class ReflectUtil { private ReflectUtil() { } /** * 获取所有构造方法. * * @param clz * @return Set<Constructor> */ public static Set<Constructor> getConstructors(Class<?> clz) { Set<Constructor> constructors = new HashSet<Constructor>(); constructors.addAll(Arrays.asList(clz.getConstructors())); constructors.addAll(Arrays.asList(clz.getDeclaredConstructors())); return constructors; } /** * 获取本类或接口的所有方法. * * @param clz * @return Set<Method> */ public static Set<Method> getMethods(Class<?> clz) { Set<Method> methods = new HashSet<Method>(); methods.addAll(Arrays.asList(clz.getMethods())); methods.addAll(Arrays.asList(clz.getDeclaredMethods())); return methods; } /** * 获取类所有接口和父类. * * @param clz * @return Set<Class> */ public static Set<Class> getClasses(Class<?> clz) { Set<Class> classes = new HashSet<Class>(); Class<?>[] interfaces = clz.getInterfaces(); Class<?> superClass = clz.getSuperclass(); classes.addAll(Arrays.asList(interfaces)); classes.add(superClass); return classes; } /** * 获取本类或接口的所有方法和继承、实现方法, 但不包括构造方法. * * @param clz * @return Set<Method> */ public static Set<Method> getAllMethods(Class<?> clz) { Set<Class> classes = getClasses(clz); Set<Method> methods = getMethods(clz); for (Class clazz : classes) { methods.addAll(getMethods(clazz)); } return methods; } /** * 快速创建任何对象. * * @param className * @return Object */ public static Object newInstance(String className) { try { Constructor constructor = getNoParamsConstructor(getContextClassLoader() .loadClass(className)); constructor.setAccessible(true); return constructor.newInstance((Object[]) null); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 当前线程类加载器 * * @return ClassLoader */ public static ClassLoader getContextClassLoader() { return Thread.currentThread().getContextClassLoader(); } /** * CLASSPATH 类加载器 * * @return ClassLoader */ public static ClassLoader getSystemClassLoader() { return ClassLoader.getSystemClassLoader(); } /** * 获取无参构造方法. * * @param clz * @return ClassLoader */ public static Constructor getNoParamsConstructor(Class<?> clz) { for (Constructor constructor : getConstructors(clz)) { if (0 == constructor.getParameterTypes().length) { return constructor; } } return null; } // *********** BEGIN TEST ***************** public static void main(String[] args) { Set<Method> methods = ReflectUtil.getAllMethods(ReflectUtil.class); for (Method method : methods) { System.out.println(method.getDeclaringClass().getName() + " | " + method.getName() + " | " + method.getParameterTypes().length); } } // *********** END TEST ***************** }
发表评论
-
[JMX] jconsole client
2014-12-19 03:26 967jconsole client --------------- ... -
Apache ActiveMQ 入门
2014-11-22 17:53 0Apache ActiveMQ -------------- ... -
tomcat 编译
2014-08-30 15:31 9351. 下载源码 http://svn.apache.org/ ... -
MINA
2014-06-19 12:58 1043MINA(Multipurpose Infrastructur ... -
[Activiti] Activiti in action
2014-01-01 12:19 1097Activiti in action ------------ ... -
elasticsearch 入门
2013-09-10 14:59 0elasticsearch -- 1 安装 1.1 ... -
文本搜索工具
2013-07-18 16:12 997文本搜索工具 本工具可用于搜索文本内容,并增强了JAR文件内 ... -
[Maven]Nexus 安装与配置
2012-06-02 08:00 78681 下载Nexus http://www.sonatype.o ... -
Quartz CronExpression
2011-10-23 19:39 1447CronExpression ================ ... -
Quartz
2011-10-22 19:21 2873Quartz ========= 1 官网: http:// ... -
将数字转换成中文字符串
2011-10-22 17:08 1702将数字转换成中文字符串 ----------------- ... -
Jakarta ORO
2011-10-09 07:44 2086Jakarta-ORO 是一个Java工具包用来在 Java ... -
DTD 教程
2011-10-01 18:31 1275DTD 教程 -------------- 文 ... -
JAD 的使用
2011-09-08 11:24 1160JAD 的使用 ================ 1. 安装 ... -
FreeMarker 入门
2011-09-04 20:08 1242FreeMarker 入门 ================= ... -
Struts2 启动过程
2011-09-03 00:04 1149Struts2 启动过程: 2 与 3 的顺序应该颠倒 ... -
JAVA 泛型
2011-08-31 08:20 1322JAVA 泛型 ----------- 下面代码解释: 类泛型 ... -
ANT build.dtd
2011-08-30 14:39 1275ANT build.dtd Eclipse 配置自动提示: ... -
Log4j 日志框架入门
2011-08-28 19:43 22221 讨论组: log4j-user@jakarta.apach ... -
Schema Export
2011-08-25 18:26 1097build.xml <?xml version ...
相关推荐
"ReflectUtil2.0" 是一个移植自Xposed框架的反射工具类,用于增强对Android系统和应用的自定义修改能力。Xposed是一个在Android系统上运行的框架,它允许开发者通过编写模块来改变系统的各种行为,而无需修改APK或...
该代码经过作者的优化,可直接使用,反射一个实体,从试题中获取值
ReflectUtil java反射工具类
orm工具类,可直接使用后台设计的类对数据库做增删改查,不需要手动编写sql
Java常用工具包Jodd是一个强大的开源库,专为Java开发者设计,提供了许多实用的功能和类,以简化开发过程。...下面我们将深入探讨Jodd的核心功能和相关知识点。 ... 2. **数据转换**:Jodd的Json模块提供了一套简单的...
4. **ReflectUtil.java**:这个文件可能是移植后的`XposedHelper`替代类,它可能包含了上述的反射操作实现。在使用前,我们需要阅读源代码并理解其实现细节,确保其功能与`XposedHelper`一致。 5. **commons-lang3-...
MappedStatement mappedStatement = (MappedStatement) ReflectUtil.getFieldValue(statementHandler, "mappedStatement"); BoundSql boundSql = statementHandler.getBoundSql(); // 获取数据库方言 ...
- 动态修改系统参数:通过`ReflectUtil`类可以反射修改系统类的字段值,实现动态配置。 - 自定义事件监听:`XposedHelpers.findAndHookMethod()`等方法可以监听和处理指定方法的调用。 在实际应用中,开发者可以...
在`sun.reflect`包下,有诸如`ReflectPermission`、`ReflectUtil`和`GenericSignatureFormatError`等类,它们支持反射操作的执行。在JDK 1.8中,这个包的扩展可能涉及到对反射机制的优化或者增加了新的API,使得...
在"sun.misc"包下,你可以找到`ReflectUtil`等关键类,它们在反射操作中起到核心作用。 另外,NIO(New Input/Output)是Java提供的一种非阻塞I/O模型,相比传统的阻塞I/O,NIO能显著提高在处理大量并发连接时的...
7. **反射工具类(ReflectUtil)**:通过反射机制,可以动态访问和修改类、接口、字段和方法,这对于框架开发或者测试非常有用。例如,`getFieldValue()`可以获取指定对象某个字段的值。 8. **线程工具类(ThreadUtil)...
7. **反射和注解处理**:ReflectUtil和AnnotationUtil类可能提供了对Java反射和注解的高级封装,使得这些底层API的使用更加简单易懂。 8. **线程与并发**:ThreadUtil类可能包含线程创建、线程池管理、同步控制等多...
6. **ReflectUtil**:反射工具类,用于动态地获取类的信息,创建对象,调用方法,设置或获取字段值。反射在处理一些元编程场景时非常有用。 7. **ThreadUtil**:线程相关工具类,可能会有线程的启动、停止、同步、...
7. **反射和注解工具类(ReflectUtil, AnnotationUtil)**:这两个工具类提供对Java反射和注解的高级操作,可以帮助开发者更方便地获取类信息、字段信息、方法信息,以及处理注解的逻辑。 8. **线程和并发工具类...
- **反射工具**:`ReflectUtil`简化了Java反射操作。 - **泛型工具**:`TypeUtil`处理泛型相关的类型获取和比较。 3. **其他模块** - **分页工具**:`PageUtil`实现了简单的分页处理。 - **剪贴板工具**:`...
例如,Mirage库可能包含了一个名为ReflectUtil的类,这个类中集成了常见的反射操作,如安全的获取和设置字段值,以及无异常的调用方法。这样的设计有助于减少代码中的异常处理,提升代码的可读性和可维护性。 此外...
反射是Java中一项强大的特性,ReflectUtil提供了一系列使用反射进行操作的方法。 ##### 1. 得到某个对象的公共属性: `Object getProperty(Object owner, String fieldName)` 通过反射获取对象的某个公共属性的值。 ...
9. **反射工具类**:如ReflectUtil,可能包含类的加载、对象的创建、方法的调用等反射操作,方便进行动态编程。 10. **编码解码工具类**:如EncodeDecodeUtil,可能包括Base64编码、Hex编码、URL编码等,对于数据...
13. **反射工具类**:如`ReflectUtil`,提供动态获取类信息、创建对象、调用方法等功能。 14. **单位转换工具类**:如`UnitConvertUtil`,可以进行长度、重量、体积等单位之间的转换。 15. **颜色处理工具类**:如`...
反射工具(ReflectUtil)、泛型类型工具(TypeUtil)、分页工具(PageUtil)、剪贴板工具(ClipboardUtil)和类工具(ClassUtil)等涉及Java反射机制和Java类的高级操作。 类加载工具(ClassLoaderUtil)、枚举工具...