Java之反射机制【入门版(3)】

java 反射java.lang.Class面向对象的原理一般认为万物万事皆对象a.类名.classb.如果对象存在可以直接对象.getClassc.Class.forName("类的全称");

例子:

package corelesson;

import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import javax.swing.JButton;public class ClassDemo3 {public static void main(String[] args) {//ClassDemo3.class.getClassLoader()得到类加载器对象System.out.println(ClassDemo3.class.getClassLoader().getClass().getName());printClassMessage(new JButton());}public static void printClassMessage(Object obj){//要获取类信息,,先获取类类型,3种方式根据已有条件选择Class c = obj.getClass();//获取类名System.out.println(c.getName());//获取不包含包名的类名System.out.println(c.getSimpleName());//获取类的方法–》java.lang.reflect.Method类的对象/*getMethod获取了所有的public的方法* 父类继承的也是* getDeclaredMethods()是自己声明的方法,不问访问权限* 继承的得不到* */Method[] ms = c.getMethods();for(int i = 0;i < ms.length;i++){//获取的是方法的返回值类型的类类型Class returnType = ms[i].getReturnType();System.out.print(returnType.getName()+ " ");System.out.print(ms[i].getName()+"(");//获取的是方法的参数列表类类型Class[] paramsType = ms[i].getParameterTypes();for(int j = 0;j <paramsType.length;j++){System.out.print(paramsType[j]+",");}System.out.println(")");}System.out.println("+++++++++++++++++++++++++++++++++");/*成员变量也是对象java.lang.reflect.Field;* getDeclatredFields获取所有自己声明的成员变量* getFields方法获取所有public 的成员变量*** */Field[] fs = c.getDeclaredFields();for(Field field :fs){//获取的是成员变量的类类型Class fieldType = field.getType();//获取成员变量的类型和名字System.out.println(fieldType.getName()+" "+field.getName());}System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");/*所有的构造函数都是java.lang.reflect.Constructor类的对象* getDeclaredConstructors(获取所有)* getConstructor获取公有的** */Constructor[] cs = c.getDeclaredConstructors();for(Constructor constructor : cs){System.out.print(constructor.getName()+"(");//获取构造函数的参数列表的类类型Class[] paramsType = constructor.getParameterTypes();for(Class class1: paramsType){System.out.print(class1.getName()+",");}System.out.println(")");}}}

版权声明:本文为博主原创文章,未经博主允许不得转载。

发光并非太阳的专利,你也可以发光

Java之反射机制【入门版(3)】

相关文章:

你感兴趣的文章:

标签云: