首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

施用反射调用方法

2012-09-08 
使用反射调用方法?package testimport java.lang.reflect.Methodclass Panda {public String namepubli

使用反射调用方法

?package test;
import java.lang.reflect.Method;class Panda {public String name;public int age;// 公共无参数方法public void eat() {System.out.println("I can eat zhuzi");}// 静态方法public static void run() {System.out.println("I can run slowly");}// 私有有参数方法private void show(String name, int age) {System.out.println("name : " + name + " age :" + age);}}public class MethodDemo {public static void main(String[] args) throws Exception {// 获得Panda类的对象Class<Panda> clz = Panda.class;Method m = null;// 获取eat方法m = clz.getMethod("eat");// 用invoke调用eat方法Object o = m.invoke(clz.newInstance());System.out.println(o);// 获取run方法m = clz.getMethod("run");// 静态方法可用类直接调用,Obj可为空Object oo = m.invoke(null);System.out.println(oo);// 获取类自己的私有方法m = clz.getDeclaredMethod("show", String.class, int.class);// 忽略权限m.setAccessible(true);// 用invoke调用私有方法,并根据参数列表设置对应的值Object ooo = m.invoke(clz.newInstance(), "Nancy", 10);System.out.println(ooo);}}
?

热点排行