2016-03-19 13 views
0

Ich schreibe einen Code und ich versuche System.out.println() zu verwenden, um den Namen eines Objekts zu drucken. Zum Beispiel mit dem Code String foo = new String("Hi");, ich möchte "foo" ausdrucken. Wie mache ich das?Wie finde ich die Kennung eines Objekts in Java?

+1

'System.out.println (" foo ");' –

+0

@ ElliottFrisch nett! –

+0

Ja, aber das ist hart codiert, was nicht gut ist – WacfeldWang

Antwort

0

Es ist nicht möglich, dass der angegebene Objektverweisname zur Laufzeit nicht verfügbar ist.

2

Sie können dies aus mehreren Gründen nicht tun. Die einfachste ist, dass ein Objekt aus mehreren Variablen referenziert werden: beide

String foo = new String("Hi"); 
String bar = foo; 

Jetzt foo und bar beziehen sich auf das gleiche Objekt String"Hi". Es gibt keine Möglichkeit, sich für eine einzelne Kennung zu entscheiden.

Namen von lokalen Variablen sind im Wesentlichen ein Kompilierzeit-Artefakt. Sobald der Compiler fertig ist, können Sie nicht mehr auf diese Namen zugreifen, ohne auf die Debug-Informationen zugreifen zu können, die Sie unter compile with -g:vars compiler flag erstellt haben.

Verwandte Themen