java反射机制个人学习笔记

package reflection;


import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;


public class TestRelection {


/*
* 1.测试反射的小例子
* 2.要具备面向对象的思维,class是对象,方法是对象,方法参数是对象,类里面的属性
*/

 public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
String str="T";
System.out.println("抛出异常了");
 
Class c= Class.forName(str);//将class对象加载进来
System.out.println("没有找到");
Object o=c.newInstance();//创建对应的类的实例
Method[] methods=c.getMethods();//得到这个类中对应的方法

//遍历类中的方法,得到一个方法的数组
for(Method m:methods){
String s=m.getName();
System.out.println(s);

}
for(Method m:methods){
if(m.getName().equals("mm")){
m.invoke(o);//arguments代表参数不合法
for(Class p:m.getParameterTypes()){//获取参数的类型
System.out.println(p);
}
}
if(m.getName().equals("m1")){
m.invoke(o, 1);
Class returnType=m.getReturnType();//获取方法的返回值类型
System.out.println(returnType.getName());
}

}
 }


}


  class T{


int i;
String s;
//静态代码块这要类被夹在就会执行的
static{
System.out.println("T loaded....");
}

public T(){
System.out.println("构造函数执行了,创建对象了");
}


public void mm(){
System.out.println("mm追上了");
}
public void m1(int i,int j) {
System.out.println("值:"+i+j);


}


public String getS() {
return s;
}

}

在src目录下新建一个:test.Properties文件,里面内容写上要找的class类:   class=T

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值