`
mywhy
  • 浏览: 63658 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

利用反射查看类的详细信息

 
阅读更多
package test.my.chap0302;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Date;

public class StringUtils {
	
	@SuppressWarnings("unchecked")
	public String toString(Object obj){
		StringBuilder sb = new StringBuilder();
		Class cs = obj.getClass();//获取该类的class对象
		String clasName = cs.getSimpleName(); //获取该类的类名
		Package packageName = cs.getPackage(); //包名
		sb.append("包名是:"+packageName+"\n");
		sb.append("类名是:"+clasName+"\n");
		Constructor[] cons = cs.getDeclaredConstructors(); //所有构造器
		for(Constructor con:cons){
			String modifer = Modifier.toString(con.getModifiers());
			if(modifer.contains("public")){
				sb.append("构造器:"+con.toGenericString()+"\n");
			}
		}
		Method[] ms = cs.getDeclaredMethods(); //所有方法
		for(Method md:ms){
			String modifer = Modifier.toString(md.getModifiers());
			if(modifer.contains("public")){
				sb.append("方法:"+md.toGenericString()+"\n");
			}
		}
		Field[] fields = cs.getDeclaredFields();
		for(Field f:fields){
			String modifier = Modifier.toString(f.getModifiers());
			if(modifier.contains("public")){
				sb.append("公共字段:"+f.toGenericString()+"\n");
			}
		}
		return sb.toString();
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(new StringUtils().toString(new Date()));
	}

}
分享到:
评论

相关推荐

    01:详解C#中的反射.pdf

    大家注意到这两个例子的共同特点,就是从一个对象的外部去了解对象内部的构造,而且都是利用了波的反射功能。在.NET中的反射也可以实现从对象的外部来了解对象(或程序集)内部结构的功能,哪怕你不知道这个对象(或...

    PHP反射类ReflectionClass和ReflectionObject的使用方法

    PHP中的扩展反射类,该扩展用来分析php程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。看一个这样的问题,php类的成员变量没有在类中声明,而是在函数中声明,有什么不同?复制代码 代码如下:...

    Java典型模块

    3.3.1 反射的基石——Class类 3.3.2 反射的基本应用 3.3.3 反射的高级应用 3.4 标注 3.4.1 标注的简单使用 3.4.2 JDK的内置标注 3.5 泛型 3.5.1 为什么要使用泛型 3.5.2 泛型的一些特性 3.5.3 泛型的通配符 3.6 类...

    吴天雄-Java注解及动态性详解.doc

    1.注解详细内容(五个内置注解、自定义注解、元注解、利用反射机制读取注解信息) 2.java动态性(静态语言、动态语言、反射机制操作(类、属性、注解、构造器)、动态编译、脚本引擎Rhino动态执行JavaScript代码、...

    javaSE代码实例

    4.2.4 详细执行流程 49 4.3 while循环语句 50 4.4 do-while循环语句 52 4.5 for循环语句 53 4.5.1 基本语法 53 4.5.2 声明的三大组成部分 54 4.5.3 复杂的for循环案例 55 4.5.4 用for实现其他循环 ...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例160 利用反射重写toString()方法 208 实例161 反射与动态代理 209 7.3 常见的未检查型异常 210 实例162 算数异常 210 实例163 数组存值异常 211 实例164 数组下标越界异常 212 实例165 空指针异常 213 7.4 常见...

    matlab图像分割肿瘤代码-HyperspectralClassification:皮肤肿瘤的机器学习分类

    详细信息:对具有大型数据集的11只小鼠进行了机器学习和图像处理技术。 应用PCA特征提取可将频段数量减少到2个主要分量。 使用超像素执行图像聚类以减少计算量。 利用R-SVM训练模型并分类肿瘤。 对11只小鼠的数据集...

    asp.net知识库

    利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托:一个C#睡前故事 [推荐] - [原创] Microsoft .NET策略及框架概述 卸载Class? Web Form 窗体 如何实现web...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    13.2.3如何获取类中的成员信息 13.3通过反射机制访问对象 13.3.1如何实例化对象 13.3.2如何给成员变量赋值 13.3.3如何调用成员函数 13.4何时使用反射 13.5动态异常处理框架 13.5.1框架功能简介 13.5.2重要...

    深博问测系统 Version 1.0 Build 0415 Beta

    系统使用了微软的PetShop4.0开发框架,有效利用了缓存与反射机制,提高运行效率 6.已完美支持IE6.0和FireFox2.0浏览器 <br/>二、前台会员功能: <br/>1.发布问题时支持UBB标签,支持匿名发布 2.发布...

    Android获取app应用程序大小的方法

    Android对这种方法进行了封装,我们没有权限去调用这个方法,所以我们只能通过AIDL,然后利用Java的反射机制去调用系统级的方法。 下面上代码:(注释比较详细) /** * 作用:-----获取包的大小----- * @param ...

    CustomerManagement:使用带有开发文档的MVC模型的简单客户管理系统

    JavaWeb项目之客户管理系统项目介绍详细讲解请点击这里前往我的博客功能介绍添加客户:添加客户的信息,包括姓名,性别,手机,邮箱,自我描述查询客户:查询数据库中所有的客户,查询结果将客户信息以列表的形式...

    Thinking in Java(中文版 由yyc,spirit整理).chm

    11.3 反射:运行期类信息 11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 ...

    Spring.net框架

    通过ConfigHandler的解析,我们最终得到一个ConfigInfo实例,Factory就是根据这个实例中所包含的配置信息,利用反射技术对所需对象生成并组装的。SayHelloFactory的代码如下: using System; using System.IO; using...

    JAVA_Thinking in Java(中文版 由yyc,spirit整理).chm

    11.3 反射:运行期类信息 11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 ...

Global site tag (gtag.js) - Google Analytics