2013-09-16 47 views
0

我试图在堆栈溢出和其他网站上使用Google搜索。但是,我无法得到答案,这就是我在这里发布的原因。inoke setter方法例外

我已经采取了一个bean类 “BeanEx”

public class BeanEx { 
    private String queryCode; 

    private String itemId; 

    private int infoId; 


    public String getQueryCode() { 
     return queryCode; 
    } 

    public void setQueryCode(String queryCode) { 
     this.queryCode = queryCode; 
    } 

    public String getItemId(){ 
     return itemId; 
    } 
    public void setItemId(String itemId){ 
     this.itemId = itemId; 
    } 

    public int getInfoId() { 
     return infoId; 
    } 

    public void setInfoId(int infoId) { 
     this.infoId = infoId; 
    } 
} 

我的主要方法的Java文件

BeanEx myClass = new BeanEx(); 
Class<?> objClass = myClass.getClass(); 
BeanInfo info = Introspector.getBeanInfo(objClass); 
PropertyDescriptor[] props = info.getPropertyDescriptors(); 
MethodDescriptor[] methodDescriptors = info.getMethodDescriptors(); 
Map<String, String> beanMap = new HashMap<String, String>(); 

for (PropertyDescriptor pd : props) { 
    System.out.println(pd.getName()); 
    System.out.println(pd.getReadMethod().getName()); 
    try { 
     System.out.println("hihi = " + pd.getWriteMethod().getName()); 
     pd.getWriteMethod().invoke(objClass.newInstance(), 
       new Object[] { "praee" }); 
    } catch (NullPointerException npe) { 
     System.out.println("ignoring exception"); 
    } 
    // return pd.getName(); 
} 

我得到的例外......

class 
getClass 
ignoring exception 
infoId 
getInfoId 
hihi = setInfoId 
java.lang.IllegalArgumentException: argument type mismatch 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at javaapplication1.RegularExpressionExample.getFieldName(RegularExpressionExample.java:44) 
    at javaapplication1.RegularExpressionExample.main(RegularExpressionExample.java:23) 

可能是什么问题..?

回答

3

您正在试图调用

new BeanEx().setInfoId("hello"); 

此方法时,需要一个int

+0

感谢..对不起...我没有愚蠢的错误 –