Android 反射Method应用

本文探讨了在Android中如何使用反射操作Method,包括获取Method对象的常见方法、调用私有方法及传递参数。通过实例展示了反射在Android系统源码中的应用,鼓励开发者熟悉系统源码以提升开发水平。
摘要由CSDN通过智能技术生成

本人喜欢把复杂的事情简单化,简单的事情复杂化---以前读书的时候,语文老师经常再三强调,写作文的时候不要把题目写”太大”了;只要写一件小事,写的越详细越动人就达到了目的!

---zhibao.liu

 

本来想先介绍反射构造函数,代码写了一部分,发现先介绍反射构造函数不是太”灵活”,所以,就先介绍方法,感觉先介绍了方法,在讲构造函数时,往构造函数中传递参数,然后通过方法在体现出来,效果会更加!

 

大致介下Method.java中需要用到的几个常见的方法:

invoke(Object obj, Object... args)

 

http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html

获取Method对象的几个常见方法,大致如下:

Field[] getDeclaredFields()

 

Method getDeclaredMethod(String name, Class<?>... parameterTypes)

 

http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html

上面方法介绍的很少,但是其他方法可以举一反三,主要是上面的方法将来用的时候,见得面也是最多的.当然这也是本人个人一些经验,一些书大谈特谈,讲了很多API之类的,也分析了很多,往往让初学者反而不知道重点,感觉各个都是重点,结果书看起来很费劲,导致很多书越看到后面越没意思了,如果一个人都没办法上手,那教的再多也没什么用,何必搞得那么复杂呢.

废话不过说,同样新建一个java工程:

<1> : 新建以后,工程树如下:

<2> : FlexClass.java代码中增加两个测试用的方法,如下:

/**
 * 
 */
package com.oneplus.flex;

/**
 * @author zhibao.liu
 * @date 2015-11-18
 * @company : oneplus.Inc
 */
public class FlexClass {
	
	public void Show(String information){
		System.out.println("show information as : "+information);
	}
	
	private int Add(int a,int b){
		
		return a+b+1;
		
	}

	
}

<3> : 下面看一看主要程序代码中,首先列出反射出来的类中有多少方法:

private static void OneplusFlexMethod(String packagename){
		
		try {
			
			Class clazz=Class.forName(packagename);
			
			try {
				
				Object obj = clazz.newInstance();
				//获取类所有的方法
				Method[] methods=clazz.getDeclaredMethods();
				
				for(int i=0;i<methods.length;i++){
					
					System.out.println("method name : "+methods[i].getName());
					
				}
				
			} catch (InstantiationException e) {
				// TODO Auto-generated catc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值