码迷,mamicode.com
首页 > 其他好文 > 详细

2016/05/19

时间:2016-05-19 01:25:05      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

package cn.Reflect;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class DemoReclect {

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
show();
}

public static void show() throws Exception {
// TODO Auto-generated method stub
// 获取指定类。只要知道类的名字。地址都是可以的
Class clazz = Class.forName("cn.Reflect.Uesr");
/*
* 演示调用构造方法 getDeclaredConstructors()//调用的是所有分构造函数。包括私有化的
* getConstructors()//返回的是public的构造函数
*
* getConstructor(构造器的形参类型)、//返回的是public的构造函数
* getDeclaredConstructor(构造器的形参类型)//包含私有的,所有级别的
*
* o
*/
Constructor constructor = clazz.getDeclaredConstructor(String.class);// 调用其他类中的构造函数
Uesr uesr = (Uesr) constructor.newInstance("王老五");// 实例化
Constructor constructor1 = clazz.getDeclaredConstructor(String.class, int.class);
constructor1.newInstance("老王", 12);// 相当于new Uesr("老王",12);
/*
* 演示调用一般函数方法 getDeclaredMethods();获取所有的一般函数方法,包括私有
* getMethod(方法名,对应方法参数类型));//调用的是public
* getDeclaredMethod(方法名,对应方法参数类型):返回对应类指定的所有
* getMethod()//所有的public方法
*
*
*
*
*/
Method[] methods = clazz.getDeclaredMethods();// 获得所有的method方法

for (Method m : methods) {
System.out.println(m);
}
Method method = clazz.getMethod("setName", String.class);// 调用一般方法
Uesr uesr1 = (Uesr) clazz.newInstance();
method.invoke(uesr1, "瘪三");
/* System.out.println(method.invoke(uesr, "瘪三")); */

}

}

2016/05/19

标签:

原文地址:http://www.cnblogs.com/zr20160507/p/5507218.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!