Konwersja JavaScript do Java

Konwersja JavaScript do Java

Kiedy wywołujesz metody Java i zmieniasz parametry z JavaScript, typ danych tych parametrów zmienione zostaną konwertowane stosownie do opisanych reguł w następujących tematach:

Zwraca wartości metod netscape.javascript.JSObject, które są zawsze konwertowane do przykładu java.lang.Object. Reguły konwersji, które zwracają wartość są także opisane w tym temacie.

Na przykład, jeśli zwraca numer JavaScript JSObject.eval, możesz znaleźć reguły konwersji tegoż numeru do numeru java.lang.Object w wartości liczbowe.

Wartości liczbowe

Kiedy w JavaScript typ Number zmienisz na jako parametry metod Java, Java konwertuje wartości stosownie do zasad opisanych w następującej tabeli:


Java typ parametru Zasady konwersji
double * Dokładne wartości są transferowane do Javy bez zaokrąglonych i bez straconych wielkości lub znaku .
  • NaN jest konwertowane do NaN.
java.lang.Double
java.lang.Object
Nowy przykład java.lang.Double jest tworzony i dokładna wartość jest transferowana do Java bez zaokrągleń i bez straconej wielkości lub znaku.
float * Wartości float są dokładnie zaokrąglane.
  • Wartości, które są zbyt za duże lub za małe, aby być prezentowanym są zaokrąglane do +nieskończoności lub -nieskończoności.
  • NaN jest konwertowany do NaN.
byte

char
int
long

short
* Wartości są okrążane przy użyciu trybu round-to-negative-infinity.
  • Wartości które są też duże lub małe reprezentuje rezultat w błędzie run-time.
  • NaN nie może być konwertowany, czego rezultatem jest błąd run-time.
java.lang.String Wartości są konwertowane do łańcucha znaków. Na przykład:
  • 237 staje się "237"
boolean * Wartości 0 i NaN są konwertowanie do false.
  • Inne wartości są konwertowane do true.

Kiedy liczba JavaScript przechodzi jako parametr metody Java, która oczekuje przykładu z java.lang.String, numer jest konwertowany do łańcucha znaków. Użyj metody equals() do porównania rezultatów tej konwersji z innymi wartościami łańcuchów znaków.

Wartości logiczne

Kiedy w JavaScript typ Boolean zmienisz na parametry metod Javy, Java konwertuje wartości stosownie do zasad opisanych w następującej tabeli:

Java typ parametru Zasady konwersji
boolean Wszystkie wartości są konwertowane w kierunku wyposażenia Javy.
lava.lang.Boolean
java.lang.Object
Nowy przykład java.lang.Boolean jest utworzony. Każdy parametr tworzy nowy przykład, nie jeden przykład z tymi samymi prymitywnymi wartościami.
java.lang.String Wartości są konwertowane do łańcuchów znaków. Na przykład:
  • true staje się "true"
  • false staje się "false"
byte

char
double
float
int
long

short
* true staje się 1
  • false staje się 0

Kiedy zmienimy JavaScript wartość boolean, który jest jako parametr do metod Javy, oczekuje przykładu java.lang.String, wartość boolean jest konwertowana do wartości string. Użyj operatora == do porównania rezultatów tej konwersji z innymi wartościami string.

Wartość String

Kiedy w JavaScript typ string zmienisz na parametry metod Javy, Java konwertuje wartości stosownie do zasad opisanych w następującej tabeli:

Java typ parametru Zasady konwersji
java.lang.String
java.lang.Object
JavaScript 1.4:
  • Łańcuch JavaScript jest konwertowany przykładem java.lang.String z wartościami Unicode.

JavaScript 1.3 i wcześniejsze:

  • Łańcuch JavaScript jest konwertowany przykładem java.lang.String z wartościami ASCII.
byte

double
float
int
long

short
Wszystkie wartości są konwertowane do liczb opisanych w ECMA-262. Wartości string JavaScript jest konwertowana do liczby stosownie do opisu ECMA-262.
char JavaScript 1.4:
  • jeden znak łańcucha jest konwertowany do znaków Unicode.
  • wszystkie inne wartości są konwertowane na liczby.

JavaScript 1.3 i wcześniejsze:

  • Wszystkie wartości są konwertowane na liczby.
boolean * Pusty łańcuch staje się false.
  • Wszystkie inne klucze staną się true.

Wartości niezidentyfikowane

Kiedy w JavaScript wartości niezidentyfikowane zmienisz na parametry metod Javy, Java konwertuje wartości stosownie do zasad opisanych w następującej tabeli:

Java typ parametru Zasady konwersji
lava.lang.String
java.lang.Object
Wartość jest konwertowana do przykładu java.lang.String, którego wartość jest łańcuch "niezdefiniowany".
boolean Wartość staje się false.
double
float
Wartość staje się NaN.
byte

char
int
long

short
Wartość staje się 0.

Konwersja niezdefiniowanej wartości wartość prawdopodobnie w JavaScript 1.3 i późniejszych wersjach. wcześniejsze wersje JavaScript nie dostarczają wartości niezdefiniowanych.

Kiedy wartość niezdefiniowana JavaScript jest zmieniona na parametr metody Java, która oczekuje na przykład java.lang.String, wartość niezdefiniowana jest konwertowana do wartości string. Użyj operator == do porównania tych konwersji z inną wartością string.

Wartość Null

Kiedy w JavaScript wartości null zmienisz na parametry metod Javy, Java konwertuje wartości stosownie do zasad opisanych w następującej tabeli:

Java typ parametru Zasady konwersji
Jakaś class
Jakiś typ interfejsu
Wartość stanie się null.
byte

char
double
float
int
long

short
Wartość stanie się 0.
boolean Wartość stanie się false.

Obiekty JavaArray i JavaObject

W wielu sytuacjach, kiedy zmieniałeś JavaScript JavaArray lub JavaObject jako parametry metod w Javie, Java prosto rozpakowuje obiekt; w kilku sytuacjach, obiekt jest poprawiany do innego typu danych stosowanych do opisu zasad w następującej tabeli:

Java typ parametru Zasady konwersji
Jakiś interfejs lub klasa, która przypisuje kompatybilność z rozpakowanym obiekt. Obiekt jest rozpakowany.
java.lang.String Obiekt jest rozpakowywany, metoda toString rozpakowanego obiektu Java jest nazywana, i w rezultacie zwrócona jako nowy przykład java.lang.String.
byte

char
double
float
int
long

short
Obiekt jest rozpakowany, i w następujących dwóch sytuacjach się może to zdarzyć:
  • Jeśli rozpakowany obiekt Java posiada metodę doubleValue, to JavaArray lub JavaObject jest konwertowany do wartości powrotu tej metody.
  • Jeśli rozpakowany obiekt Java nie posiada metody doubleValue, błąd zdarzenia.
boolean W JavaScript 1.3 i późniejszych wersjach, obiekt jest rozpakowywany i przytrafia się w obu następujących sytuacjach:
  • Jeśli obiekt jest null, to jest konwertowany jako false.
  • Jeśli obiekt ma jakąkolwiek wartość, to jest konwertowany do true.

W JavaScript 1.2 i wcześniejszych wersjach, obiekt jest rozpakowany i zdarza się w obu następujących sytuacjach:

  • Jeśli rozpakowany obiekt posiada metodę booleanValue, źródło obiektu jest konwertowane do zwracanej wartości.
  • Jeśli obiekt nie posiada metody booleanValue, konwersja zostanie nie wykonana.

interfejs lub klasa jest kompatybilnym przypisaniem z rozpakowanego obiektu jeśli obiekt ten jest przykładem typu parametru Javy. To jest, że następująca instrukcja musi zwrócić true:

unwrappedObject instanceof parameterType

Obiekty JavaClass

Kiedy w JavaScript obiekt JavaClass zmienisz na parametry metod Javy, Java konwertuje wartości stosownie do zasad opisanych w następującej tabeli:

Java typ parametru Zasady konwersji
java.lang.Class Obiekt jest rozpakowany.
java.lang.JSObject
java.lang.Object
Obiekt JavaClass jest pakowany w nowym przykładzie java.lang.JSObject.
java.lang.String Obiekt jest rozpakowywany, metoda toString rozpakowanego obiektu Java jest nazywana, i w rezultacie zwrócona jako nowy przykład java.lang.String.
boolean W JavaScript 1.3 i późniejszych wersjach, obiekt jest rozpakowywany i przytrafia się w obu następujących sytuacjach:
  • Jeśli obiekt jest null, to jest konwertowany jako false.
  • Jeśli obiekt ma jakąkolwiek wartość, to jest konwertowany do true.

W JavaScript 1.2 i wcześniejszych wersjach, obiekt jest rozpakowany i zdarza się w obu następujących sytuacjach:

  • Jeśli rozpakowany obiekt posiada metodę booleanValue, źródło obiektu jest konwertowane do zwracanej wartości.
  • Jeśli obiekt nie posiada metody booleanValue, konwersja zostanie nie wykonana.

Inne obiekty JavaScript

Kiedy w JavaScript jakikolwiek obiekt zmienisz na parametry metod Javy, Java konwertuje wartości stosownie do zasad opisanych w następującej tabeli:

Java typ parametru Zasady konwersji
java.lang.JSObject
java.lang.Object
Obiekt JavaClass jest pakowany w nowym przykładzie java.lang.JSObject.
java.lang.String Obiekt jest rozpakowywany, metoda toString rozpakowanego obiektu Java jest nazywana, i w rezultacie zwrócona jako nowy przykład java.lang.String.
byte

char
double
float
int
long

short
Obiekty są generowane używając wartości logicznej operatora ToPrimitive opisanego w ECMA-262. Użyj ukryty PreferredType z operatorem Number.
boolean W JavaScript 1.3 i późniejszych wersjach, obiekt jest rozpakowywany i przytrafia się w obu następujących sytuacjach:
  • Jeśli obiekt jest null, to jest konwertowany jako false.
  • Jeśli obiekt ma jakąkolwiek wartość, to jest konwertowany do true.

W JavaScript 1.2 i wcześniejszych wersjach, obiekt jest rozpakowany i zdarza się w obu następujących sytuacjach:

  • Jeśli rozpakowany obiekt posiada metodę booleanValue, źródło obiektu jest konwertowane do zwracanej wartości.
  • Jeśli obiekt nie posiada metody booleanValue, konwersja zostanie nie wykonana.




Autorzy i etykiety dokumentu

 Autorzy tej strony: teoli, Ptak82, Mgjbot, Taken, Anonymous
 Ostatnia aktualizacja: teoli,