我是新來的java和無法得到是否枚舉呈現最終變量過時?枚舉最終變量是否被廢棄?
0
A
回答
2
枚舉和最終變量無關。在枚舉之前,人們不得不求助於常量,但它們不是等價的。
0
如果你的意思是public static final int
作爲命名常量使用的變量,那麼是的,枚舉是爲了代替它們。
然而,最終變量在少數地區仍然有用 - 值得注意的是,使用閉包需要它們,例如,
final int foo = 3; // must be marked final
t = new Thread(new Runnable() {
public static void run() {
System.out.println(foo + 1);
}
});
t.start();
此外,PSF變量作爲配置常數仍然有用。
0
那麼這兩種方式都有不同的應用。枚舉更適合於狀態機或值不相關的地方。在我的一個程序中,我有一組最終變量作爲值和狀態指示器。最終變量仍然具有重要的應用,因爲它們允許在整個程序中簡單地修改字面值。
/堅果殼
1
絕對不是。 Java中的最終變量不僅僅是常量。
- 可以將Final應用於方法參數,以提供針對重新分配的編譯時保證。
- Final可以應用於局部變量以提供編譯時保證以防止重新分配。這也需要實例化引用局部變量(也稱爲閉包)的匿名內部類。
- Final可以應用於實例變量以保證這些字段的參考不變性。如果字段類型是不可變的或採取了適當的防禦措施,則可以使用它來確保對象的不變性,從而使其不受線程影響。
- Final可以應用於防止子類覆蓋它們的方法。
- Final可以應用於類以防止類的擴展。
正如您所見,final
關鍵字仍有許多用途。
1
我在這個問題中假設你問的是整數常量而不是其他類型?如果不是,請記住枚舉只能是枚舉(int),不能是特定類型。
否則......再次,它不會使它們過時。如果只有一個(small-ish)有限數量的可能性永遠不會改變,Enums就很有用。如果這些可以是無數的事物(或大量事物),或者不是全部完全定義,但有些可以是事物,那麼它們就不那麼有用。
這實際上取決於用法。
相關問題
- 1. XmlReader.ReadString是否已被棄用或廢棄?
- 2. 變量是枚舉
- 3. 變量不能用作setter,因爲它是最終的(枚舉)
- 4. Java枚舉靜態最終實例變量
- 5. 如何檢查枚舉變量是否分配有單個枚舉值?
- 6. NSArrayM突變而被枚舉
- 7. 特立尼達2.0是否被取代或廢棄?
- 8. 自ASP.NET MVC 3起,MicrosoftAjax.js,MicrosoftMvcAjax.js和MicrosoftMvcValidation.js是否被廢棄?
- 9. 標誌數是兩個變量枚舉
- 10. 枚舉變量總是初始化?
- 11. Java枚舉變量是靜態的嗎?
- 12. C++中的最終枚舉類11
- 13. 屬性或枚舉或靜態最終
- 14. 枚舉實例變量
- 15. 枚舉爲變量在去
- 16. 如何檢查一個枚舉變量是否有效?
- 17. 「NSCFArray突變而被枚舉」枚舉副本
- 18. 最後,是枚舉類?
- 19. Dapper是否支持枚舉?
- 20. C#枚舉 - 是否爲空?
- 21. 是否需要枚舉string.ToCharArray()?
- 22. EF7是否支持枚舉?
- 23. git-core已經被port git廢棄
- 24. Selection.addRange()已被廢棄,則會從Chrome
- 25. 會話廢棄
- 26. 使用「是」,「否」,「i」,「out」作爲變量/枚舉的名稱是否安全?
- 27. 最終變量
- 28. 我在一個枚舉變量中設置三個枚舉常量,有沒有辦法從枚舉變量中檢索枚舉常量作爲數組?
- 29. 變量指向一個枚舉或另一個枚舉?
- 30. 崩潰與「集...突變而被枚舉」