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