初学反射
来源:互联网 发布:正规贵金属行情软件 编辑:程序博客网 时间:2024/05/17 23:23
显示打印一个类的全部信息
package test;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Modifier;import java.lang.reflect.ParameterizedType;import java.util.Date;public class ReflectionTest { public static void main(String[] args) { // TODO 自动生成的方法存根 String name = "java.util.Date"; Date date = new Date(); Class cl = date.getClass(); //printConstructors(cl); //printMethods(cl); printFields(cl); } /** * 获取类的构造器信息 * @param cl */ public static void printConstructors(Class cl){ //获取Class对象cl的构造器集合数组 Constructor[] constructors = cl.getDeclaredConstructors(); for(Constructor c : constructors){ //获取构造器方法名称字符串 String name = c.getName(); System.out.print(" "); //Modifier类 //表示程序元素(如类、方法或字段)上的修饰符。 //Modifier.toString:返回此修饰符的小写名称 //class.getModifiers 返回此类或接口以整数编码的 Java 语言修饰符。 String modifiers = Modifier.toString(c.getModifiers()); if(modifiers.length()>0){ System.out.print(modifiers + " "); } System.out.print(name + "("); //print parameter types Class[] paraTypes = c.getParameterTypes(); for(int j=0;j<paraTypes.length;j++){ if(j>0){ System.out.print(", "); } System.out.print(paraTypes[j].getName()); } System.out.println(")"); } } /** * 获取所给Class对象的所有方法 * @param cl */ public static void printMethods(Class cl){ Method[] methods = cl.getMethods(); //getMethods:返回的所有的对象只是Class对象的公共的方法 //getDeclaredMethods:返回的所有对象是Class所表示的类或者接口的所有方法(包含 公有和私有) //Field 和 Constructor 类似 for(Method m : methods){ String name = m.getName(); System.out.print(" "); String modefiers = Modifier.toString(m.getModifiers()); if(modefiers.length()>0){ System.out.print(modefiers); } System.out.print(" "+name+"("); Class[] paratypes = m.getParameterTypes(); for(int i=0; i<paratypes.length;i++){ if(i>0){ System.out.print(", "); } System.out.print(paratypes[i].getName()); } System.out.println(")"); } } /** * 获取Class对象所表示的类或者接口的所有的域的描述 * @param cl */ public static void printFields(Class cl){ Field[] fields = cl.getDeclaredFields(); for(Field f : fields){ String name = f.getName(); System.out.print(" "); String modifier = Modifier.toString(f.getModifiers()); if(modifier.length()>0) { System.out.print(modifier+ " "); } System.out.println(f.getType().getName() +" "+ name); } }}
0 0
- 初学反射
- 初学反射
- java反射初学
- JavaSE 反射Reflection初学
- java反射初学整理
- 初学java反射机制
- java 反射机制初学习
- java-反射初学(1)
- java-反射初学(2)
- Java反射技术初学习
- Java中的反射机制(初学)
- Java初学习-Java的反射机制
- Java初学习 - 反射机制1
- Java初学习 - 反射机制2
- 非常好的Java反射例子-初学反射者
- 初学Java反射之简单明了的反射例子。
- java_web初学笔记之<java的反射机制>
- 初学Java的类加载与反射机制(一)
- cpu、内存、硬盘和指令那些事
- Eclipse新建web项目,实现登录验证功能
- iOS 导航栏返回按钮自定义
- 黑盒测试基本方法
- 重温jvm中的happen-before
- 初学反射
- 分享一个微信公众号id转换为biz的接口
- NSCache
- Android笔记2016_04_01
- Eilxir解决哲学家就餐问题
- 复制字符串
- 文章标题
- Tomcat访问路径去掉发布项目的项目目录
- AndroidStudio的日常使用——快捷键