Java反射机制小例子

来源:互联网 发布:酒店网络所需设备清单 编辑:程序博客网 时间:2024/05/21 18:46
package com.wjy.main;import java.io.Console;import java.lang.reflect.Constructor;import java.lang.reflect.Method;import com.wjy.reflect.Student;public class TestMain {    public static void main(String args[]){        try{        Class<?> cls=Class.forName("com.wjy.reflect.Student");        //Class cls=Class.forName("com.wjy.reflect.Student");        //Class cls=Student.class;        //Class cls=new Student().getClass();        /*上四句是等价的,但是最好使用第一种方法。         *          */                        Constructor<?> cons[] = cls.getConstructors();//        System.out.println(cons[0]);        //        Method method=cls.getDeclaredMethod("hi", new Class[]{int.class,String.class});//        method.invoke(cls.newInstance(),20,"shb");        //        Student student=null;//        student=(Student)cls.newInstance();//        student.hi(66, "shirly");                Student student=null;        student=(Student)cons[0].newInstance();        student.hi(88, "shirly");        /**         * 以上为三种方法,被注释的是前两种种方法。效果是等价的。         */                }catch(Exception e){            e.printStackTrace();        }        //        Student student=new Student();//        System.out.println(student.getClass().getName());    }}

 

 

其中Student类为:

package com.wjy.reflect;public class Student {    private int age;    private String name;    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public void hi(int age,String name){        System.out.println("大家好,我叫"+name+",今年"+age+"");    }}

 

0 0