【问题标题】:Java to javascript type conversionJava 到 javascript 类型转换
【发布时间】:2011-01-31 05:37:25
【问题描述】:

谁能解释一下这是什么意思?

Java 数值的装箱对象 (java.lang 类字节, 字符、短整型、整型、长整型、浮点型、 和 Double) 被拆箱并转换 到最接近的可用 JavaScript 数字类型,除外,当它们是 从方法声明的返回类型或 使用新表达式的结果 per-applet Packages 关键字。在 在这种情况下,拳击对象将是 返回到 JavaScript 引擎作为 Java 对象。

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

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

这是来自liveconnect specification,但我不明白java 类型何时会转换为javascript 类型,何时不会。 except 部分是什么意思?有什么例子吗?

【问题讨论】:

    标签: java javascript applet liveconnect


    【解决方案1】:

    假设你有

    Integer i;
    i = 1;
    

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

    Java 数值的装箱对象 (java.lang 类字节, 字符、短整型、整型、长整型、浮点型、 和 Double) 被拆箱并转换 到最接近的可用 JavaScript 数字类型,

    意味着以这种方式转换的整数将恢复为原生 javascript int

    除非它们是声明的 从方法或返回类型 使用新表达式的结果 per-applet Packages 关键字。在这个 情况下,拳击对象将是 返回到 JavaScript 引擎作为 Java 对象。

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

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

    在JS代码中:

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

    如果val 在Java 中是一个Integer,那么在这种情况下它会在javascript 中变成一个JSObject

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

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

    String s = "I am a string."
    

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

    【讨论】:

    • 让我们使用 javascript 表达式 var value = applet.getIntegerValue();并且在java代码中声明getIntegerValue返回java.lang.Integer。那么... value 变量应该是原生 javascript Number 还是应该是 java.lang.Integer,因为它遵循 except 部分并且返回类型是 java.lang.Integer?
    猜你喜欢
    • 2011-06-05
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 2012-07-17
    • 2013-07-07
    • 1970-01-01
    • 2013-04-16
    • 2016-02-13
    相关资源
    最近更新 更多