2012-08-04 10 views
5

In Javascript können Sie auf die Eigenschaften eines Objekts entweder mit Punktnotation oder Klammernnotation verweisen.Java Bracket Notation?

var myObject = { hello: "world" }; 
var prop = "hello"; 

// both will output "world". 
console.log(myObject[ prop ]); 
console.log(myObject.hello); 

Gibt es eine ähnliche Syntax in Java ein Objekten Eigenschaften für den Zugriff auf ein String-Variable, ähnlich wie Javascript, der Klammer-Notation: Dies kann durch die Verwendung eines String-Variable wie nützlich sein?

+2

Der nächste Schritt zu Ihrer Antwort wäre über [Reflexion] (http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getField (java.lang.String)), aber das sollte wahrscheinlich nicht geraten werden. Es gibt kein direktes Analogon, da Java relativ typisiert ist. – oldrinb

+0

Wichtiger denke ich ist die Frage "warum?". Wenn es nur Neugierde ist, dann wird es eine Reflektion oder eine normale Hash-Map geben. Wenn nicht, brauchen wir einen besseren Kontext des Problems. –

Antwort

1

Nein, es gibt keine solche Syntax in Java, aber es gibt eine API (reflection), mit der Sie das tun können, wenn auch auf eine weniger direkte Weise.

1

Es gibt keine ähnliche Syntax in Java, oder eine direkte Möglichkeit, dies zu tun.

java bietet eine Reflexions-API, mit der Sie die Eigenschaften/Schnittstelle eines Objekts zur Laufzeit unter Verwendung von Strings abfragen können, die z. Eigenschaften und Methoden eines Objekts.

Sie können auch (Schlüssel, Wert) Eigenschaften in einer Datenstruktur wie HashMap, Zuordnung Strings zu Objekten speichern.

4

Nein, es gibt keine. Über die nächste Sache, die es gibt, wäre Reflexion, aber das ist klobig, um es gelinde auszudrücken. Sie müssen die Field nachschlagen und dann den Wert der Instanz dafür erhalten.

Nicht das, was Sie suchen, ich weiß, aber es ist das nächstgelegene ist es leider.

1

1. Ich glaube nicht, dass es eine solche Syntax in Java gibt.

2. Aber ich würde das Key-Value Paar lieber mit, und das ist Map.

3.Reflection API das kann auch in diesem Fall verwendet werden.

Verwandte Themen