为了账号安全,请及时绑定邮箱和手机立即绑定

java 反射错误

java 反射错误

慕莱坞森 2019-03-13 14:15:55
实体类:[/color]public class Hotel {private long id; public long getId() {     return id; } public void setId(long id) {     this.id = id; }}测试方法:public void testReflect() throws Exception{ Object object = Hotel.class.newInstance(); String setMethod = "setId"; Method method = object.getClass().getDeclaredMethod(setMethod, new Class[]{Object.class}); method.invoke(object, new Object[]{1L}); }出错信息java.lang.NoSuchMethodException: setIdat java.lang.ClassCache.findMethodByName(ClassCache.java:247)at java.lang.Class.getDeclaredMethod(Class.java:731)at java.lang.reflect.Method.invokeNative(Native Method)
查看完整描述

4 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

Method method = object.getClass().getDeclaredMethod(setMethod, new Class[]{[color=red]long.class[/color]});


查看完整回答
反对 回复 2019-04-26
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

public void testReflect() throws Exception{ 
Object object = Hotel.class.newInstance(); 
String setMethod = "setId"; 
Method method = object.getClass().getMethod(setMethod); 
method.invoke(object, new Object[]{1L}); 
}

查看完整回答
反对 回复 2019-04-26
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

public static void main(String[] args) throws Exception{
Object o = Hotel.class.newInstance();
String setMethod = "setId";
Method[] methods = o.getClass().getMethods();
for(int i=0;i<methods.length;i++){
Method m = methods[i];
// System.out.println(m.getName());
if(m.getName().equals("setId")){
System.out.println("1111");
m.invoke(o, new Object[]{1L});
}

    }
    //method.invoke(o, new Object[]{1L});
}


查看完整回答
反对 回复 2019-04-26
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

亲,其实这样写就可以了!
Method method = Hotel.class.getMethod("setId",long.class);

查看完整回答
反对 回复 2019-04-26
  • 4 回答
  • 0 关注
  • 487 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信