博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java reflect反射调用方法invoke
阅读量:4459 次
发布时间:2019-06-08

本文共 1645 字,大约阅读时间需要 5 分钟。

类定义

package Reflect;public class MyTest {    public int a;    public static int b;    public static final int c = 0;    private int d;    public int sum(int a, int b) {        return a + b;    }    public int sub(int a, int b, String c) {
     System.out.println(c); return a - b; } MyTest() { } MyTest(int a, int b) { }}

反射调用

package Reflect;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Modifier;public class Test {    public static void main(String[] args) {                // invoke the reflect-method        try {            final Class z = Class.forName("Reflect.MyTest");            final Class[] params = new Class[3];// define the param-type            params[0] = int.class;            params[1] = int.class;            params[2] = String.class;            // final Method m = z.getDeclaredMethod("sub", params);            final Method m = z.getMethod("sub", int.class, int.class, String.class);            // final Method m = z.getDeclaredMethod("sum", int.class, int.class);            // set in-param            final Object[] p = new Object[3];            p[0] = 100;            p[1] = 50;            p[2] = "hello word!";            System.out.println();            final Integer s = (Integer) m.invoke(z.newInstance(), p);            // final Integer s = (Integer) m.invoke(z.newInstance(), 3, 5);            System.out.println("return value==" + s);        } catch (final Exception e) {            e.printStackTrace();        }    }}

输出:

hello word!

return value==50

 

转载于:https://www.cnblogs.com/pu20065226/p/10120297.html

你可能感兴趣的文章
JIRA中的标记语言的语法参考
查看>>
hdu 6318 Swaps and Inversions(归并排序)
查看>>
用css在IE7、8上实现圆角
查看>>
三维绿幕标定与跟踪
查看>>
android ProgressBar自定义半圆形进度条
查看>>
hdu.5212.Code(莫比乌斯反演 && 埃氏筛)
查看>>
python学习记录一
查看>>
使用LINQ的Skip和Take函数分批获取数据
查看>>
IP通信基础 4月1日
查看>>
KeyProvider
查看>>
空指针为什么能调用成员函数?
查看>>
用MySQL的存储过程来实现一些经典函数
查看>>
React (2) -- State and Lifecycle
查看>>
【转】在EmEditor上编译并运行JAVA
查看>>
关于SqlDateTime溢出的问题
查看>>
jquery下php与ajax的数据交换方式
查看>>
魅蓝Note有几种颜色 魅蓝Note哪个颜色好看
查看>>
使用PullToRefresh实现下拉刷新和上拉加载
查看>>
透明度百分比与十六进制转换
查看>>
HBase表预分区
查看>>