2012-08-04 5 views
5

En javascript puede hacer referencia a las propiedades de un objeto usando notación de puntos o notación de corchetes. Esto puede ser útil mediante el uso de una variable de cadena tales como:¿Notación de soporte de Java?

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

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

¿Existe una sintaxis similar en Java para acceder a una propiedades de los objetos utilizando una variable de cadena, de forma similar a la notación soporte de JavaScript?

+2

Lo más parecido a su respuesta sería a través de [reflexión] (http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getField (java.lang.String)), pero esto probablemente no debería ser aconsejado. No hay un análogo directo ya que Java es relativamente estricto al escribir. – oldrinb

+0

Más importante, creo que es la pregunta es "¿por qué?". Si solo es curiosidad, entonces la reflexión o el uso de un mapa hash normal funcionarán. Si no, necesitamos un mejor contexto del problema. –

Respuesta

1

No, no existe tal sintaxis en Java, pero hay una API (reflection) que le permite hacer eso, aunque de una manera menos directa.

1

No hay una sintaxis similar en java, o cualquier forma directa de hacerlo.

java qué proporcionan una API de reflexión que le permite consultar propiedades de un objeto/interfaz en tiempo de ejecución utilizando Strings que representan, por ejemplo, las propiedades y los métodos de un objeto.

También puede almacenar propiedades (clave, valor) en una estructura de datos como HashMap, asignando Strings a los objetos.

4

No, no hay. Acerca de lo más cercano que hay sería usar la reflexión, pero eso es torpe por decir lo menos. Debe buscar el Field y luego obtener el valor de la instancia para él.

Field property = myInstance.getClass().getDeclaredField("prop"); 
Object value = property.get(myInstance); 

No es lo que está buscando, lo sé, pero es lo más cercano que desafortunadamente hay.

1

1. No creo que haya ninguna sintaxis como esa en java.

2. Pero yo preferiría usar el par Key-Value, y eso es Map.

3.Reflection API que también pueden utilizarse en este caso.