问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java反射机制获取set()方法 并且为set()方法传值11

发布网友 发布时间:2023-10-13 04:31

我来回答

5个回答

热心网友 时间:2024-11-30 07:29

Class.getDeclaredMethod() 是获取这个类中所有的方法,返回的是Method[]如果有参数,第1个是方法名称,第2个是该方法的所有参数数组,这样返回的是Method这个对象Method.invoke() 传入调用方法的类,另一个是调用这个方法所需要的参数,如果该方法没有参数,可以不填写,在JDK1,4之前,第2个参数是传入一个数组的,但是在jdk1.5之后,可以不传数组,多个参数用逗号隔开 不知道你听明白没

热心网友 时间:2024-11-30 07:29

package com.knowhowinfo;import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;public class Test {
public static void main(String args[]) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException, SecurityException, NoSuchMethodException {
Class<A> c = A.class;
//返回所有的方法
Method[] ms = c.getDeclaredMethods();
A a = c.newInstance();
for (Method method : ms) {
//这里遍历一下 可有可以无 实验而已
System.out.println(method);
}
Method m = c.getDeclaredMethod("set", int.class,String.class);
m.setAccessible(true);//因为写成private 所以这里必须设置
m.invoke(a, 5,"你好");

}
}
class A{
private void set(int i,String s){
System.out.println(i+","+s);
};
}这是效果图,相信你能看的懂

热心网友 时间:2024-11-30 07:30

反射机制可以获得的是类的方法,不是对象的,虽然获得了方法名,但如果没有对象,你怎么给他传值(调用方法调用的是类的对象的方法)。
若果你用反射创建了类的对象,那么你可以直接调用这个对象的方法了,调用方法并不需要反*。

热心网友 时间:2024-11-30 07:30

摘抄:

package com.knowhowinfo;import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.method;public class Test {
public static void main(String args[]) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException, SecurityException, NoSuchmethodException {
Class<A> c = A.class;
//返回所有的方法
method[] ms = c.getDeclaredmethods();
A a = c.newInstance();
for (method method : ms) {
//这里遍历一下 可有可以无 实验而已
System.out.println(method);
}
method m = c.getDeclaredmethod("set", int.class,String.class);
m.setAccessible(true);//因为写成private 所以这里必须设置
m.invoke(a, 5,"你好");

}
}
class A{
private void set(int i,String s){
System.out.println(i+","+s);
};
}

热心网友 时间:2024-11-30 07:31

Class数组 如果没参数就直接 传个null的Class进去 invoke里第一个参数写该方法属于的object 第2个如果方法所需的形参数为 0,就写0... api上的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
导购什么字 店面导购员是什么意思 HKEY_LOCAL_MACHINE\SOFTWARE\Macromedia\FlashPlayer\SafeVersions... 无法安装adobeflashplayer,说无法注册ACTIVEX的控件 无法注册flash player的activex怎么办 omniverse create 他总说无法注册Flash player的Active控件 然后什么访问以下链接。不要... excel如何用进度条的形式表示完成率 买了件速干衣,北面的,求大神看一下真假。 秦皇岛银谷全城热恋是不是要预定票啊 cad地面铺装图和地坪材质图是一样的么?5 花的种类大全441 浦发银行可以转账到农村信用社吗?9 花的名称大全10 广州市市花 浦发网上银行转账到农村信用社多长时间到帐5 浦发银行卡可以转账到农村信用社的卡上吗8 dwr + spring 出现 异常:java.lang.IllegalStateException: No Sess... 解决DWR异常 java.lang.SecurityException: No class by name: GetAcl... ...力控做毕设,想问一下,用modbus协议通讯时,怎么与设备进行连接呢... 请问宝宝多大去上早教合适呢?5 为什么我女朋友对我说她想把她的长发剪成短发,好好长发为什么剪...6 小米11值得买么?7 京东白条能用工商银行信用卡还款吗? 微分和求导有什么差别?153 微分和导数有什么区别1633 微信如何查看登录过的账号 查看手机登陆过的方法介绍 企业融资理论有哪些32 大家都来说说对当代文学作家 王蒙 的看法以及他的作品的一些见...1 有一个手机牌子叫Goo什么什么 请问他的全名叫什么1 三星2014支持移动4G吗 CAD做地面铺装的时候铺多了,如何删除多余的部分1 广东考生在中国传媒大学南广学院学习,好就业吗? 掉下来的小吊兰为什么还能长 文竹的养殖方法?696 深圳市渴望置业有限公司怎么样? 深圳市金典置业有限公司怎么样? 这是什么牌手机1 黄帝灭了蚩尤,那么蚩尤的后代后来哪儿去了?10 家装设计中窗户的设计 为什么我不敢一个人睡5 不敢自己一个人睡觉怎么办我是男的,都16 对银行7天通知存款有些疑问?3 晚上不敢一个人睡觉是怎么回事,怎么办,到2 微分就是求导吗?微分和求导有什么区别呀?459 linheno京东白条怎么还款!我用信用卡办理 微分和导数是什么关系?64 京东白条给信用卡还款可不可以啊3 甘肃哪里有比较大的养驴场,什么地方卖驴的比较多16 怎么用两台笔记本一起上网