Java到javascript类型的转换

时间:2011-01-31 05:37:26

标签: java javascript applet liveconnect

有人可以解释这是什么意思吗?

  

为Java数值设置拳击对象   (java.lang类Byte,   人物,短,国际,长,漂浮,   和Double)是未装箱和转换的   到最近的JavaScript   数字类型,除了,当它们是   从方法或者声明的返回类型   使用新表达式的结果   per-applet Packages关键字。在   这种情况下,拳击对象将是   作为一个返回到JavaScript引擎   Java对象。

     

Java布尔值是   转换为JavaScript布尔值,   除了,当它是声明的返回时   从方法或结果中输入   使用per-applet的新表达式   包关键字。在这种情况下,   拳击对象将返回   JavaScript引擎作为Java对象。

     

Java字符串转换为   JavaScript字符串,除了时   是一个新表达的结果   使用per-applet Packages关键字。   在这种情况下,Java String是   作为一个返回到JavaScript引擎   Java对象。

这是来自liveconnect specification,但我无法理解何时将java类型转换为javascript类型,何时不会。 除了部分是什么意思?有什么例子吗?

1 个答案:

答案 0 :(得分:2)

假设你有

Integer i;
i = 1;

然后int 1自动转换为Integer个对象;这是自动装箱。

  

为Java数值设置拳击对象   (java.lang类Byte,   人物,短,国际,长,漂浮,   和Double)是未装箱和转换的   到最近的JavaScript   数字类型,

表示以这种方式转换的整数将恢复为原生javascript int

  

除非他们是宣布的   从方法返回类型或   使用the的新表达式的结果   per-applet Packages关键字。在这   case,拳击对象将是   作为一个返回到JavaScript引擎   Java对象。

...但是如果你声明了一个函数来返回一个Integer,它将被转换为一个Java对象表示。您使用此Packages关键字创建的内容也是如此。 (我不知道这是什么,但这就是它的含义。)

更新:以下是规范中的一个示例:

JS代码中的

val = new app.Packages.com.mycompany.MyClass();

如果说val是Java中的Integer,那么在javascript中它会成为JSObject

  

Java字符串转换为   JavaScript字符串,除非它们   是一个新表达的结果   使用per-applet Packages关键字。   在这种情况下,Java String是   作为一个返回到JavaScript引擎   Java对象。

同样,如果你有一个Java字符串

String s = "I am a string."

使用Java内部表示和方法,它将被转换为javscrip0t字符串(不同的实现和方法),除非您使用Packages关键字创建它。