关闭

android实习期日常笔记(四)

137人阅读 评论(0) 收藏 举报
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();
		} 
				 
		  
	}
}

  

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5241次
    • 积分:160
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条