首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Java反射机制小事例

2014-01-15 
Java反射机制小例子package com.wjy.mainimport java.io.Consoleimport java.lang.reflect.Constructor

Java反射机制小例子

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+"岁");    }}

?

热点排行