有人可以解释这是什么意思吗?
为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类型,何时不会。 除了部分是什么意思?有什么例子吗?
答案 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关键字创建它。