我一直在我的項目中發現幾個錯誤是由於枚舉爲空,而不是枚舉值之一。有沒有辦法保證這種類型的變量總是用枚舉值之一初始化,並且永遠不會爲空?有沒有辦法創建一個不能爲null的枚舉?
1
A
回答
4
編號枚舉始終是引用類型,並且null
是任何引用類型的有效值。您可以隨時寫:
MyEnum x = null;
,如果您有未明確初始化實例或靜態變量,它會始終默認爲空。
1
這可能是通過選擇Java Design By Contract系統並更改每個取得枚舉的函數使其不爲空來完成(非常非常痛苦)。當然,這對於現有項目來說是一項巨大的工作。
更實際的一點是,您可能會考慮將static code analysis tool集成到您的構建過程中。這也是一個很大的工作量(它可能會發現一個巨大的「bug」),但如果你有時間投資它,可能是可行的(仍然很痛苦)。正確的靜態代碼分析工具可能會檢測到這種錯誤。
相關問題
- 1. 有沒有辦法創建一個枚舉值的別名?
- 2. 有沒有辦法爲非整數創建枚舉數據類型?
- 3. 有沒有辦法使用Texture2D作爲枚舉的基礎
- 4. C#:有沒有辦法將一個枚舉作爲參數傳遞?
- 5. 有沒有辦法爲* any *枚舉聲明一個註解屬性?
- 6. 有沒有辦法從一個範圍創建一個非null數組?
- 7. 創建一個沒有0值的C#枚舉的實例
- 8. 有沒有辦法創建一個不可變(只讀)的XDocument?
- 9. 有沒有辦法爲函數創建一個預處理宏?
- 10. 有沒有辦法創建一個代碼爲
- 11. 有沒有辦法指定一個匿名的空可枚舉類型?
- 12. 有沒有辦法將枚舉映射到C#.NET 3.5中的另一個枚舉?
- 13. 有沒有辦法如何區分使用doxygen的枚舉組?
- 14. 有沒有辦法指定python枚舉的默認值?
- 15. 有沒有辦法返回到typedef枚舉的字符串?
- 16. 是否有可能在C++中創建一個int +枚舉?
- 17. 有沒有辦法判斷一個枚舉是否只有一個,多個或不設置標誌?
- 18. 有沒有辦法枚舉所有的屬性,並逐一釋放它們?
- 19. 如何爲pageControl.currentPage創建一個枚舉?
- 20. 有沒有辦法通過枚舉在Rust中索引數組?
- 21. 有沒有辦法創建一個非矩形的UIButton?
- 22. 有沒有辦法創建一個分組的命名範圍?
- 23. 在枚舉中枚舉是否有一個通用的方法?
- 24. 有沒有辦法讓ANTLR4爲生成的令牌使用枚舉?
- 25. 有沒有辦法爲一個頁面創建一個FB應用程序?
- 26. 是否有可能創建一個泛型按位枚舉'IsOptionSet()'方法?
- 27. 有沒有辦法在Visual Studio中創建另一個項目?
- 28. 有沒有辦法在textarea內創建一個網格?
- 29. Django - 有沒有辦法在模板中創建一個變量?
- 30. 有沒有辦法以編程方式創建一個unwind segue?