您的位置:首页 > 编程语言 > Java开发

Java 反射机制

2012-04-17 09:07 316 查看
http://blog.csdn.net/justinavril/article/details/2873664

这篇博客中有比较简单的讲解,很适合初学者。

package wuxuzhao;

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

public class TestForThread {

/**
* @param args
* @throws ClassNotFoundException
* @throws NoSuchMethodException
* @throws SecurityException
* @throws InvocationTargetException
* @throws IllegalAccessException
* @throws IllegalArgumentException
*/
public static synchronized void main(String[] args) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
// TODO Auto-generated method stub
//列出类中声明的方法
Class c = Class.forName("java.lang.String");

Method m[] = c.getDeclaredMethods();

for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());

//判断是否是类的实例对象
Class cl = Class.forName("wuxuzhao.TestForThread");
boolean b1 = cl.isInstance(new TestForThread());
System.out.println(b1);
//调用函数
Class cls = Class.forName("wuxuzhao.TestForThread");

Class partypes[] = new Class[2];
partypes[0] = Integer.TYPE;
partypes[1] = Integer.TYPE;

Method meth = cls.getMethod("add", partypes);

TestForThread methobj = new TestForThread();
Object arglist[] = new Object[2];
arglist[0] = new Integer(37);
arglist[1] = new Integer(47);

Object retobj = meth.invoke(methobj, arglist);
Integer retval = (Integer) retobj;
System.out.println(retval.intValue());

}
public int add(int a, int b) {
return a + b;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: