JAVA技術
  當前位置:首頁 > 技術支持 > JAVA技術
java.lang.NoSuchMethodException: Bean has no property named的(de)解決方法
發布時(shí)間:2017-06-29 浏覽:2553次
  

使用(yòng)Degister将XML解析爲Bean時(shí),明(míng)明(míng)Bean中的(de)屬性名與XML中的(de)節點名稱一模一樣,但運行時(shí),卻提示:

java.lang.NoSuchMethodException: Bean has no property named ZoneID......,這(zhè)個(gè)ZoneID就是XML中的(de)節點,在Bean中也(yě)設置屬性名也(yě)爲此名,并設置好對(duì)應的(de)setter和(hé)getter方法。

原因是什(shén)麽呢(ne)?

問題原因就出在這(zhè)個(gè)屬性名上,根據JAVA編程命名規則,屬性名最好以小寫字母開頭,所以commons-beanutils包中關于将xml與bean的(de)映射關系處理(lǐ)時(shí),默認使用(yòng)了(le)這(zhè)個(gè)規則,對(duì)于以大(dà)寫開頭的(de)屬性名将不認可(kě)。

隻要将bean的(de)屬性名以小寫字母命名即可(kě),同時(shí)設置好digester方法中的(de)對(duì)應關系,如:

Digester digester = new Digester();
digester.setValidating(false);

digester.addObjectCreate("DataSet/diffgr:diffgram/NewDataSet/Area", Area.class);

digester.addBeanPropertySetter("DataSet/diffgr:diffgram/NewDataSet/Area/ZoneID", "zoneID");

OK!問題解決!

 
 
    
 
 
版權所有 © 2005-2024 安徽問法信息技術有限公司  
地址:安徽省合肥市蜀山區(qū)望江西路69号西湖國際廣場(chǎng) 電話(huà):0551-64935878 郵箱:admin@ajsoft.cn