可能重複:
Is it possible to get the declaration name of an object at runtime in java?是否有可能在運行時在java中獲取String的引用名稱?
是否有可能在運行時獲取Java中的String引用的名字嗎?
例:
String rep="asd";
在這裏,我可以得到rep
變量作爲 '代表' 的名義?
可能重複:
Is it possible to get the declaration name of an object at runtime in java?是否有可能在運行時在java中獲取String的引用名稱?
是否有可能在運行時獲取Java中的String引用的名字嗎?
例:
String rep="asd";
在這裏,我可以得到rep
變量作爲 '代表' 的名義?
引用名稱不過是變量的名稱。它只是指向一個對象的參考。
你不能在運行時得到它。主要是因爲可能有許多引用之間的衝突,可能是指向該字符串對象或任何對象的問題。
它想: -
String str = "Rohit";
String abc = str;
現在,你有兩個引用str
和abc
指向相同的文字Rohit
。
所以,如果你想在運行時參考。你會得到哪個參考?這就是爲什麼它不被允許在Java中。甚至沒有通過Reflection
。
但是,如果你願意,你可以手動維護你所有的參考名稱。但那將是一件乏味的工作。但我有一個問題 - >Why on earth would you need that?
在Java編譯過程中很早就將標識符字符串轉換爲數值。因此,在編譯過程中會丟失與給定變量關聯的實際「名稱」。編譯器不關心它所調用的內容,而只關心它被存儲的地方。 – Will
@會。確切地說,這更有意義。 –
有一個很好的機會,如果你問這個問題,你做錯了什麼。如果沒有關於你實際做什麼的更多信息,簡短的答案是「不,這是不可能的」,但是,如果由於某種原因,你確實需要運行時的變量名,那麼最好的辦法就是使用hashmap您可以在這裏查看密鑰的標籤名稱以及其中保存的值。
不,編譯時將名稱解散 – perilbrain