我有一個產品類:NoSuchMethodException在試圖讓嵌套bean屬性
public class Product {
private ProductClass prodClass;
public ProductClass getProdClass() {
return prodClass;
}
public void setProdClass(ProductClass prodClass) {
this.prodClass = prodClass;
}
}
而另一個ProductClass ...
public class ProductClass {
private String StbFlag;
public String getStbFlag() {
return StbFlag;
}
public void setStbFlag(String stbFlag) {
StbFlag = stbFlag;
}
}
當我試圖讓使用BeanUtils.getNestedProperty作爲物業如下圖所示..
public class Test {
public static void main(String Args[]) {
Product product = new Product();
ProductClass proClass = new ProductClass();
proClass.setStbFlag("abcd");
product.setProdClass(proClass);
try {
String value = BeanUtils.getNestedProperty(product, "prodClass.StbFlag");
System.out.println(value);
} catch (Exception e) {
e.printStackTrace();
}
}
}
它拋出以下異常...
java.lang.NoSuchMethodException: Unknown property 'StbFlag' on class 'class ProductClass'
at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1313)
at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:762)
at org.apache.commons.beanutils.BeanUtilsBean.getNestedProperty(BeanUtilsBean.java:715)
at org.apache.commons.beanutils.BeanUtils.getNestedProperty(BeanUtils.java:354)
at Test.main(Test.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
可能是什麼原因?這只是我用來發現問題的一個示例。實際上,我將XML映射到Java對象,並且需要按照xml標記將名稱保留爲StbFlag。
當我使用STBflag或stbFlag作爲變量名時,它工作正常。任何解決方法?
它給你'NoSuchMethodexception'嘗試寫這樣的東西'BeanUtils.getNestedProperty(product,「prodClass.getStbFlag」);'可能是這樣的 – 2013-04-05 09:59:46