java 反射

来源:互联网 发布:linux dns反向解析 编辑:程序博客网 时间:2024/05/29 15:24

直接上代码。。。

package test;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class IOCTest {
    public static void main(String[] args) throws Exception{
        //获取classLoder 类对象(获取当前县城对象根据当前线程获取ClassLoader)
        ClassLoader classLoder = Thread.currentThread().getContextClassLoader();
        //根绝loaderClass  获取class 对象
        Class clazz = classLoder.loadClass("test.Person");
        //获取当前类的构造方法 参数是class[] 数组里面是构造方法参数的类型的class 形式
        Constructor cons = clazz.getConstructor(new Class[]{int.class,String.class});
        //根据构造方法对象调用newInstance 方法获取类对象
        Person person = (Person)cons.newInstance(25,"张飞");
        Person person1 = (Person)cons.newInstance(250,"张飞张飞");
        
        //根绝类对象获取类中指定的方法
        Method getNum = clazz.getMethod("getNum", null);
        //通过反射 调 用指定类中的 方法
        getNum.invoke(person, null);
        
        Method getColor = clazz.getMethod("getColor", null);
        System.out.println(getColor.invoke(person, null));
        
        Method setColor = clazz.getMethod("setColor", String.class);
        System.out.println(setColor.invoke(person, "王二"));
        
        System.out.println(getColor.invoke(person, null));
        
        
        Method getNum1 = clazz.getMethod("getNum", null);
        getNum1.invoke(person1, null);
        
        Method getColor1 = clazz.getMethod("getColor", null);
        System.out.println(getColor1.invoke(person1, null));
        
        Method setColor1 = clazz.getMethod("setColor", String.class);
        System.out.println(setColor.invoke(person1, "王二王二"));
        
        System.out.println(getColor.invoke(person1, null));
        //System.out.println(person.getNum()+person.getColor());
        
    }
}


/**

*person 类  就是一个普通的 VO对象类

*/

package test;

import java.io.Serializable;

public class Person implements Serializable{
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    int num;
    String color;
    
    public String test(){
        System.out.println("test1");
        return "test2";
    }
    public Person(){}
    public Person(int num,String color){
        this.num = num;
        this.color = color;
    }
    public int getNum() {
        System.out.println(num);
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public String getColor() {
        return color;
    }
    public void setColor(String color) {
        this.color = color;
    }
    
}


0 0
原创粉丝点击