Java反射机制小例子

时间:2023-03-09 23:34:52
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[].newInstance();
student.hi(, "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+"岁");
}
}