publicstaticvoidmain(String[] args)throws ClassNotFoundException {//获取一个类的Class对象的方法
Class clz= Class.forName("java.lang.String");
System.out.println(clz);//获取String的Class对象
Class clz1= String.class;
System.out.println(clz==clz1);//获取String对象对应的Class对象
Class clz2="zhangsan".getClass();
Class clz3="lisi".getClass();
System.out.println(clz1==clz2);
System.out.println(clz2==clz3);
System.out.println(clz3.getSuperclass());}
publicstaticvoidmain(String[] args)throws ClassNotFoundException, NoSuchFieldException, SecurityException, NoSuchMethodException {//获取User的class对象
Class clz= Class.forName("com.mage.reff.User");//获取属性
System.out.println("获取public修饰的指定的属性");
Field f = clz.getField("id");
System.out.println(f.getName()+"=="+f.getType()+"=="+Modifier.toString(f.getModifiers()));
System.out.println("获取public修饰的指定的所有属性");
Field[] fs = clz.getFields();for(Field ff:fs){
System.out.println(ff.getName()+"=="+ff.getType()+"=="+Modifier.toString(ff.getModifiers()));}
System.out.println("获取所有指定的属性");
f = clz.getDeclaredField("name");
System.out.println(f.getName()+"=="+f.getType()+"=="+Modifier.toString(f.getModifiers()));
System.out.println("获取所有属性");
fs = clz.getDeclaredFields();for(Field ff:fs){
System.out.println(ff.getName()+"=="+ff.getType()+"=="+Modifier.toString(ff.getModifiers()));}
System.out.println("获取public修的所有方法 获取父类的");
Method[] ms = clz.getMethods();for(Method mm:ms){
System.out.println(Modifier.toString(mm.getModifiers())+"=="+mm.getParameterCount()+"=="+mm.getName());}
System.out.println("获取public修的指定方法 ");
Method m = clz.getMethod("fun", Integer.TYPE,String.class);
System.out.println(Modifier.toString(m.getModifiers())+"=="+m.getParameterCount()+"=="+m.getName());
System.out.println("获取所有方法 不包含父类的");
ms = clz.getDeclaredMethods();for(Method mm:ms){
System.out.println(Modifier.toString(mm.getModifiers())+"=="+mm.getParameterCount()+"=="+mm.getName());}
System.out.println("获取的指定非public修饰的方法 ");
m = clz.getDeclaredMethod("method", Integer.TYPE,String.class);
System.out.println(Modifier.toString(m.getModifiers())+"=="+m.getParameterCount()+"=="+m.getName());
System.out.println("获取构造器public");
Constructor c = clz.getConstructor(null);
System.out.println(c.getName()+"=="+c.getParameterCount());
System.out.println("获取构造器 非public");
c = clz.getDeclaredConstructor(Integer.TYPE,String.class,Integer.TYPE,Integer.TYPE);
System.out.println(c.getName()+"=="+c.getParameterCount());
System.out.println("获取所有的构造器 public");
Constructor[] cs = clz.getConstructors();for(Constructor cc:cs){
System.out.println(cc.getName()+"=="+cc.getParameterCount());}
System.out.println("获取所有的构造器");
cs = clz.getDeclaredConstructors();for(Constructor cc:cs){
System.out.println(cc.getName()+"=="+cc.getParameterCount());}}