关于反射的应用demo
2017-04-02 10:35
211 查看
public class Reflection { public static int p; private int qw; public static void main(String[] args) throws ClassNotFoundException { Class c1=Class.forName("test.Reflection"); Class superc1=c1.getSuperclass(); String s=Modifier.toString(c1.getModifiers()); if(s.length()>0) System.out.print(s+" "); System.out.print("class "+c1.getName()+" "); if(superc1!=null && superc1!= Object.class) System.out.print("extend "+superc1.getName()); Class[] intef=c1.getInterfaces(); for(int i=0;i<intef.length;i++){ if(i==0) System.out.print(" implement "); System.out.println(intef[i].getName()); } System.out.print("{"); System.out.println(); printConstructor(c1); System.out.println(); printMotheds(c1); System.out.println(); printFields(c1); System.out.println("}"); } public static void printConstructor(Class cl){ Constructor[] constructors=cl.getConstructors(); for(Constructor c:constructors){ String modefis=Modifier.toString(cl.getModifiers()); String name =c.getName(); System.out.print(modefis+" "+name+"("); Class[] clzz=c.getParameterTypes(); for(int q=0;q<clzz.length;q++){ if(q!=0) System.out.print(","); System.out.print(clzz[q].getName()); } System.out.println(")"); } } public static void printMotheds(Class cl){ Method[] method=cl.getDeclaredMethods(); for(Method m:method){ String mod=Modifier.toString(m.getModifiers()); Class retType=m.getReturnType(); String name=m.getName(); Class[] clazz=m.getParameterTypes(); if(mod.length()>0) System.out.print(mod+" "); System.out.print(retType+" "+name+"("); for(int i=0;i<clazz.length;i++){ if(i!=0) System.out.print(","); System.out.print(clazz[i].getName()); } System.out.print(")"); Class[] cp=m.getExceptionTypes(); for(int i=0;i<cp.length;i++){ if(i!=0)System.out.print(","); System.out.print(cp[i].getName()); } System.out.println(); } } public static void printFields(Class cl){ Field[] f=cl.getDeclaredFields(); for(Field q:f){ q.setAccessible(true); if(q.getModifiers()>0) System.out.print(Modifier.toString(q.getModifiers())+" "); Class type=q.getType(); String name=q.getName(); System.out.println(type+" "+name+" "); } } }
public class test.Reflection {
public test.Reflection()
public static void main([Ljava.lang.String;)java.lang.ClassNotFoundException
public static void printConstructor(java.lang.Class)
public static void printMotheds(java.lang.Class)
public static void printFields(java.lang.Class)
public static int p
private int qw
}
相关文章推荐
- .NET 中关于反射的应用
- C#中使用反射机制得到类型实例应用Demo
- .NET 中关于反射的应用 (C#)
- 关于JAVA反射应用容易出现的一个隐性错误:
- 关于反射应用
- Android学习小Demo(20)关于Fragment的应用
- 反射机制构建web应用(Demo)
- Android学习小Demo(20)关于Fragment的应用
- JS值——学习小Demo之关于假值、绝对相等、强弱类型转换应用、symbol、-0
- j 4000 ava之反射(RPC中应用demo)
- 关于反射的应用
- 利用反射,自动将对象生成json字符串【反射应用的一个小DEMO】
- 关于Samsung S4开发蓝牙4.0应用的资料及官方demo的讨论。
- 关于类的反射机制应用
- 关于《我从教育网收集了200多篇关于组态软件和人机界面软件开发、应用的文章,想要的朋友给我发邮件呀》的申明
- 关于“企业应用”
- 反射应用之一:根据控件名、属性名进行取值和赋值
- 关于Web应用与c/s应用的一些想法
- 关于ResultSetMetaData 接口的应用
- 一篇关于积木式WEB应用的文章