java reflect反射调用方法invoke
类定义
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
java reflect反射调用方法invoke的更多相关文章
- java 使用反射调用方法
每个Method的对象对应一个具体的底层方法.获得Method对象后,程序可以使用Method里面的invoke方法来执行该底层方法. Object invoke(Object obj,Object ...
- java reflect反射获取方法变量参数
类的成员包含变量(Field),方法(Method),构造器(Constructor) 类定义 package Reflect; public class MyTest { public int a; ...
- java通过反射调用不同参数的方法
import java.lang.reflect.Method; public class testReflect { /** * @param args */ public static void ...
- JAVA反射调用方法
1.用户类 package com.lf.entity; import com.lf.annotation.SetProperty; import com.lf.annotation.SetTable ...
- Java反射学习-4 - 反射调用方法
反射调用方法: package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Method ...
- .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)——转载
原文链接:https://blog.walterlv.com/post/dotnet-high-performance-reflection-suggestions.html ***** 大家都说反射 ...
- 原 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
大家都说反射耗性能,但是到底有多耗性能,哪些反射方法更耗性能:这些问题却没有统一的描述. 本文将用数据说明反射各个方法和替代方法的性能差异,并提供一些反射代码的编写建议.为了解决反射的性能问题,你可以 ...
- java利用反射调用类的某个方法
java利用反射机制 可以动态调用某个类的某个方法,在 扩展系统功能或提供对外接口时经常用的到. 代码如下: 打印类Print.java package com.test.reflct; /** * ...
- 通过Java反射调用方法
这是个测试用的例子,通过反射调用对象的方法. TestRef.java import java.lang.reflect.Method; import java.lang.reflect.In ...
随机推荐
- VBA Dumper v0.1.4.2, 提取office文档中的VBA代码,监查宏病毒恢复代码(演示版
http://club.excelhome.net/thread-970051-1-1.html VBA Dumper 0.1.4.2更新,填补国内同类程序空白 此程序为演示版,可以在无office的 ...
- Survival Analysis
code{white-space: pre;} Survival Analysis Zhu Lin 2017-3-18 What is Survival Analysis Survival analy ...
- 结构方程软件Lisrel 8.7 和HLM5.5
这是我亲自使用过的软件,其中lisrel是破解版的,HLM是学生版的 下载地址:http://pan.baidu.com/s/1bnfCOrH
- java高并发编程(四)高并发的一些容器
摘抄自马士兵java并发视频课程: 一.需求背景: 有N张火车票,每张票都有一个编号,同时有10个窗口对外售票, 请写一个模拟程序. 分析下面的程序可能会产生哪些问题?重复销售?超量销售? /** * ...
- CentOS7 yum安装Java+Apache(httpd)+Tomcat并开启自启动
首先,感觉yum里的东西质量不好的可以先换源. http://blog.csdn.net/qq_36731677/article/details/58288979 一.查询 两种方式可查询安装包 yu ...
- Golang值传递和指针传递
Golang值传递和指针传递 package main import ( "fmt" ) func swap1(x, y, p *int) { if *x > *y { *x ...
- DevExpress GridView删除行
int[] rows = gridView1.GetSelectedRows(); ) { if (DialogHelper.YesNo(this, "确认删除该记录?", &qu ...
- c#day03
c#中的随机数 Random random = new Random(); //随机1~200之间的一个数 random.Next(,); //怪兽:防御为10,血量为10 //玩家:随机8~12的攻 ...
- [TFS]TFS2015禁止多人迁出设置
- 【LeetCode】4. 寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2. 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)). 你可以假设 nums1 和 nums2 ...