java reflect反射机制的简单例子

今天碰到一个关于反射的例子,写出一个简单的测试代码,作为记录。

package reflect;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class MainClass {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

try {
//反射获得指定名称的类进行加载
Class cls = Class.forName("reflect.MyClass");

Class[] para = new Class[]{String.class, String.class};

//获得该类的构造方法对象,参数为空
Constructor constructor = cls.getConstructor();

//通过构造方法获得一个实例化对象,注意参数也是为空
MyClass instance1 = (MyClass) constructor.newInstance();

//调用方法,显示具体内容
instance1.test();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}



MyClass是被测试类,代码也很简单

/**
*
*/
package reflect;

/**
* @author Administrator
*
*/
public class MyClass {

/**
*
*/
public MyClass() {
// TODO Auto-generated constructor stub
System.out.println("my calss() is created");
}

public MyClass(String a, String b){
System.out.println("my calss(a,b) is created");
}

public void test(){
System.out.println("mycalss.test() is runing");
}

}



测试结果:
my calss() is created
mycalss.test() is runing
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值