Guía JavaScript 1.5:Concepto general de LiveConnect:Conversiones de tipos de datos:Conversiones de Java a JavaScript
De MDC
[editar] Conversiones de Java a JavaScript
Los valores pasados desde Java a JavaScript son convertidos como sigue:
- Java byte, char, short, int, long, float y double son convertidos a números JavaScript.
- Un booleano Java es convertido a un booleano JavaScript.
- Un objeto de la clase netscape.javascript.JSObject es convertido a un objeto original JavaScript.
- Los arreglos Java son convertidos a objetos pseudo-arreglos JavaScript; este objeto se comporta justo como un objeto de arreglo JavaScript: usted puede acceder con la sintaxis arregloNombre[índice] (donde índice es un entero) y determinar su longitud con arregloNombre.length.
- Un objeto Java de cualquier clase es convertido a un envoltorio JavaScript, el cual puede ser utilizado para acceder a los métodos y campos de un objeto Java:
- Convirtiendo este envoltorio a una cadena invoca al método toString en el objeto original.
- Convirtiéndolo a número invoca al método doubleValue, si es posible y falla en caso contrario.
- Convirtiéndolo a lógico [boolean] en JavaScript 1.3 y versiones posteriores devuelve falso si el objeto es nulo y verdadero en caso contrario.
- Convirtiéndolo a lógico en JavaScript 1.2 y versiones anteriores invoca al método booleanValue, si es posible y falla en caso contrario.
Note que las instancias de java.lang.Double y java.lang.Integer son convertidas a objetos JavaScript, y no a números JavaScript. Similarmente, las instancias de java.lang.String también son convertidas a objetos JavaScript y no a cadenas JavaScript.
Los objetos de cadenas Java también corresponden a envoltorios JavaScript. Si usted invoca un método JavaScript que requiere una cadena JavaScript y le pasa este envoltorio, usted obtendrá un error. Por el contrario, convertir el envoltorio a una cadena JavaScript mediante la adición de una cadena vacía a este, tal como se muestra aquí:
var JavaString = JavaObj.methodThatReturnsAString(); var JavaScriptString = JavaString + "";