Java反射異常:java.lang.NoSuchFieldException


        今天用反射給對象賦值,有一個屬性始終報錯,主要錯誤信息如下:

 

[html]  view plain  copy
 
  1. java.lang.NoSuchFieldException: otherFeatures   
  2.     at java.lang.Class.getDeclaredField(Unknown Source)  
  3.     at com.zxiaofan.MedicalAssistanObtainService.business.CrawlDataBusiness.setSpecialAttribute(CrawlDataBusiness.java:163)  
  4.     at com.zxiaofan.MedicalAssistanObtainService.business.CrawlDataBusiness.crawDrmedData(CrawlDataBusiness.java:106)  
  5.     at com.zxiaofan.MedicalAssistanObtainService.business.CrawlDataBusinessTest.test(CrawlDataBusinessTest.java:33)  
  6.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  7.     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)  

 

 

網上說NoSuchFieldException錯誤是由於沒有對應字段造成的,或者當屬性為私有時獲取Field用的方法不是getDeclaredField。

  Field field = bo.getClass().getDeclaredField(fieldName); // 正解

但是我的對象內確實是有otherFeatures屬性的,而且用的是上述方法,查了好久,終於找到原因:

otherFeatures曾經從文本讀取過,而文本里的otherFeatures多了空格,如果仔細查看,上面的異常也多了空格的!!!

 

So:NoSuchFieldException異常原因:①沒有對應字段;②屬性為私有時獲取Field用的方法不是getDeclaredField。

 

死死往這兩個方面去找原因吧。

 

 

[javascript]  view plain  copy
 
  1. 歡迎個人轉載,但須在文章頁面明顯位置給出原文連接;  
  2. 未經作者同意必須保留此段聲明、不得隨意修改原文、不得用於商業用途,否則保留追究法律責任的權利。  
  3.   
  4. 【 CSDN 】:csdn.zxiaofan.com  
  5. 【GitHub】:github.zxiaofan.com  
  6.   
  7. 如有任何問題,歡迎留言。祝君好運!  
  8. Life is all about choices!   
  9. 將來的你一定會感激現在拼命的自己!  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM