從 Java 到 JavaScript 的轉換

 

從 Java 到 JavaScript 的轉換

從 Java 傳給 JavaScript 的值將如下做轉換︰

  • Java 的 byte、char、short、int、long、float、double 會被轉換成 JavaScript 數字。
  • Java 的 boolean 會被轉換成 JavaScript 真假值。
  • 類別 netscape.javascript.JSObject 的物件會被轉換成原始的 JavaScript 物件。
  • Java 的陣列會被轉換成 JavaScript 的模擬版 Array 物件;這個物件的行為就像 JavaScript 的 Array 物件︰你可以使用 arrayName[index](index 部分是整數)語法來存取陣列,以及使用 arrayName.length 得知陣列的長度。
  • 所有其他類別的 Java 物件會被轉換成 JavaScript 的包裝器,包裝器可用來存取 Java 物件的方法或欄位︰
    • 呼叫在原始物件上的 toString 方法把包裝器轉換成字串。
    • 呼叫 doubleValue 方法轉換成數字,如果不可能的話就會失敗。
    • 在 JavaScript 1.3 及其後版本中轉換成真假值,如果物件為 null,就會返回 false,其餘為 true。
    • 在 JavaScript 1.2 及早期版本中呼叫 booleanValue 方法轉換成真假值,如果不可能的話就會失敗。

注意,java.lang.Double 或 java.lang.Integer 的實體會被轉換成 JavaScript 物件,而非 JavaScript 數字。同樣的,java.lang.String 實體也會被轉換成 JavaScript 物件,而非 JavaScript 字串。

Java 的 String 物件也可對應於 JavaScript 的包裝器。如果你呼叫需要 JavaScript 字串的 JavaScript 方法,並且把包裝器傳給這個方法,你會碰到錯誤。正確方法是,藉由附加空的字串把包裝器轉換成 JavaScript 字串,如下所示︰

var JavaString = JavaObj.methodThatReturnsAString();
var JavaScriptString = JavaString + "";

文件標籤與貢獻者

 最近更新: teoli,