永发信息网

java反射调用set方法

答案:3  悬赏:20  手机版
解决时间 2021-04-28 05:34

我用java反射调用set方法

m = c.getDeclaredMethod("setGName", new Class[] { String.class });要报错

我在用这个方式,也要报错,

m = c.getDeclaredMethod("setGName", String.class );

为什么啊,

报错一点提示都没,

就是报com.jb.xd.users.setGName

最佳答案

你的users是不是没有无参构造?只有带参构造?

全部回答

首先,可以看出你还没有理解反射,

你现在写的代码只是做到了第一步,获取了这个方法,但是你别没有调用这个方法,所以它没报错

调用这个方法的是通过实体调用它的invoke()方法.

我给你发个我写的实例你研究研究

///下面是一个演示的实体类

package com.junimpl; public class UserInfo {

private String name="hao"; private String pwd; public String getName() { System.out.println("我是getName()方法"); return name; } public void setName(String name) { System.out.println("你设置的值是"+name ); this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } } ///下面是反射调用它的实例

package com.test; import java.lang.reflect.Field; import java.lang.reflect.Method; public class Test {

public static void main(String args[]){ try { Class c = Class.forName("com.junimpl.UserInfo");//获取该实体的元类型 Object obj = c.newInstance();//创建这个实体的对象

Field field = c.getDeclaredField("name");//获取setName方法中参数的字段

//获取方法名为setName的方法,field.getType())获取它的参数数据类型 Method method = c.getDeclaredMethod("setName", field.getType());

//调用该方法,指定参数值为

这样不知道符合不符合楼主的本意,但是执行应该不会报错Method m = c.getDeclaredMethod("setGName", Class.forName("java.lang.String"));
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
香港与宁波有时差吗、有的话是多少
吃黄莲上清片有什么毒副作用吗?
天语A650下载了手机QQ,怎么安装
在江西赣州地区能开通短号吗
英语四级成绩查询问题
耳朵痛的问题?
为什么我的IE只显示部分图片(图)
今天助功王是谁,多少数
西江月雅园停车场地址有知道的么?有点事想过
联 通 丶怎 么 开 通 所 有 Q Q 业 务 丨
到大连多少公里,佛山自驾至沈阳多少公里
我有一辆双排小客货,拉鲜活鱼类上高速,需要
马鞍山到云南弥勒放入车票是多少
"郑伟劲" 的艺术签名怎么写?
陕西省高职分数是否下延
推荐资讯
富士康哪个事业群最好,富士康有几个事业群
诺基亚5系列智能音乐手机
求好心人告知公共英语三级的报名时间和考试时
湖南兵役什么时候走
本本开机启动后屏幕自动黑掉 不是黑屏 电源灯
‘一生一代一双人,怎教两处**’这两句出自哪
从宝安到淡水的最便捷路线
老街花鸟鱼虫市场西门我想知道这个在什么地方
主题安装不了
都邦保险股份有限公司在什么地方啊,我要过去
赛尔号现在充值6个月超NO能否获得碧水精元?
谁有麦迪经典视频
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?