我是Java初學者,想知道如何使用字符串來命名類的實例,然後使用該字符串/對象創建case:
,同時保持完全自動化(例如使用System.in.read()
)?如何使用字符串動態地命名對象?
-1
A
回答
9
變量名稱對於程序員來說只是一種方便 - 他們甚至在您的代碼編譯完成後都沒有跟蹤。因此,不可能像這樣動態地命名變量。你可以嘗試使用Map
模仿這一點,但是:
Map<String, MyClass> map = new HashMap<String, MyClass>();
map.put("xyz", new MyClass()); // or something like that
...
現在,你可以通過引用與map.get("xyz")
字符串"xyz"
關聯的對象。
0
雖然這是一個非常糟糕的主意(使用某種形式的hashmap代替),但可以使用名爲reflection的塗料。我個人做不是推薦這個。
假設您的班級名爲Foo
並且包含字段bar
和baz
。
現在,讓我們說我們在類Foo
,所以我們可以使用this
關鍵字。如果使用對該對象的現有引用,請將其更改爲this
。 fName
是我們想要的變量的名稱。
Class<?> c = this.getClass();
Field ourField = c.getDeclaredField("fName");
Object ourValue = ourField.get(this);
請注意,這是痛苦的,緩慢的,並且需要額外的工作才能訪問原語。
如果ourField
是int
,例如,我們將要改變的最後一個值:
int intVal=ourField.getInt(this);
相關問題
- 1. 用可變字符串命名對象
- 2. 如何使用javassist動態重命名字符串變量?
- 3. 由其名稱動態地創建一個對象(字符串)
- 4. 命名字符串後的新對象?
- 5. 命名對象動態?
- 6. 使用字符串動態添加類成員來命名它
- 7. 如何使用JavaScript字符串對象
- 8. 字符串轉換爲動態對象
- 9. Java - 使用名稱形式的對象字符串字符串
- 10. 如何動態命名對象並在javascript中使用對象構造函數?
- 11. 如何使用字符串緩衝區動態地管理命令?
- 12. 使用字符串動態引用對象屬性
- 13. PHP字符串對象名
- 14. JS - 如何用字符串等對象構建動態嵌套對象
- 15. 如何使用動態字符串過濾字符串X?
- 16. 動態地從字符串泛型在C#創建對象
- 17. TypeScript動態生成類映射對象的字符串名稱
- 18. 如何幀JSON對象動態地動態鍵和值的串
- 19. 如何使用Perl腳本動態地替換字符串
- 20. 如何使用字符串列名動態SQL內
- 21. 如何使用字符串從動態數據表名屬性
- 22. Visual Basic:使用字符串作爲名稱動態創建對象
- 23. 使用連接(動態)字符串作爲JavaScript對象鍵?
- 24. 使用動態鍵字符串檢索對象變量
- 25. C#,如何從動態對象的字符串參數傳遞屬性名稱
- 26. 如何將動態js對象轉換爲單行字符串?
- 27. 如何分組名單<地圖<字符串,對象>>地圖<字符串,列表<地圖<字符串,對象>>在Java8
- 28. 如何命名的對象引用(句柄)動態紅寶石
- 29. 如何在使用動態LINQ中的Contains時動態地將字符串轉換爲字符串?
- 30. 創建地圖[字符串,地圖[字符串,對象]從列表[對象]
更具體..問題是不夠清晰(ATLEAST我:() – stinepike
動態命名變量很難,因爲它通常是一個可怕的想法,你爲什麼想這樣做? –
它可能更好地存儲名稱/值對映射... – mata