android实习期日常笔记(四)

java反射机制:

PS : JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,

都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。


首先先介绍几个重要的方法:

1.getName() :

获取某个对象的全称;

2.forName() :

通过某个类的全称从而获取该类的对象;

ps:对象和实例大家都以为是一个概念。但是总是有点不同的,如

String str; //str为对象

String str = new String("abc");//此时就是实例了。以前有一 种说法叫对象

的实例化。现在没咋听说过了。不过我一直都这么理解的。希望能够让大家理

解的更为清楚

 3. newInstance() :

通过对象调用该方法返回该类的实例化对象。

4. getMethod(methodName,args1,args2,,,,,,) :

由对象调用,获取该类的方法,第一个参数为该方法名,后面的为 该方法的

参数列表,返回值为Method。

 5.invoke(Object,args1,args2,,,,,,) :

由上面4获取的方法调用。第一个参数为该方法所在的类的实例化对 象。后面

的为需要传入的参数。

  6.getSuperClass() :

由对象调用,获取该类的父类的一个对象。

7.getClassLoader() :

有对象调用,获取该类所对应的类加载器


下面贴代码demo:

package reflectionTest;

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

class bb{
	bb(){
		System.out.println("bb");
	} 
	public  int getHehe(){
		System.out.println("GetHehe");
		return 1;
	}
} 
public class reflection {
	public static void main(String[] args){ 
		Class t =null; 
		try {
			t = Class.forName("reflectionTest.bb"); 
		    Object o = null;  
			o = t.newInstance(); 
		    Method m = null; 
			m = t.getMethod("getHehe",String.class);
		 
			m.invoke(o);
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
				 
		  
	}
}

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值