Dokumentacja języka JavaScript 1.5:Obiekty:JavaArray
z Mozilla Developer Center, polskiego centrum programistów Mozilli.
Spis treści |
[edytuj] Podsumowanie
Obiekt główny
Zapakowana tablica Javy, do której dostęp uzyskuje się poprzez kod JavaScript jest członkiem typu JavaArray.
[edytuj] Tworzone przez
Jakąkolwiek metodę Javy, która zwraca tablicę. W dodatku, możesz stworzyć obiekt JavaArray z dowolnym typem danych używając metody newInstance klasy Array:
public static Object newInstance(Class componentType, int length) throws NegativeArraySizeException
[edytuj] Opis
Obiekt JavaArray jest wystąpieniem tablicy Javy, która jest stworzona wewnątrz kody JavaScript lub do niego przekazana. JavaArray jest opakowaniem (ang. wrapper) dla tej instancji; wszystkie referencje do niej są robione przez JavaArray.
W JavaScript 1.4 i późniejszym, parametr componentType jest albo obiektem typu JavaClass reprezentującym typ tablicy albo obiektem klasowym, jak na przykład obiekt zwracany przez java.lang.Class.forName. W JavaScript 1.3 i wcześniejszych, componentType musi być obiektem klasowym.
Użyj indeksy oparte na zerze, aby uzyskać dostęp do obiektu JavaArray, tak samo jak robisz to w Javie. Na przykład:
var javaString = new java.lang.String("Hello world!");
var byteArray = javaString.getBytes();
byteArray[0] // zwraca 72
byteArray[1] // zwraca 101
Jakiekolwiek dane Javy przeniesione do JavaScriptu są konwertowane do typów danych JavaScriptu. Kiedy obiekt JavaArray jest przekazany z powrotem do Javy, obiekt jest rozpakowywany i może być użyty przez kod Javy. Zobacz Przewodnik po języku JavaScript 1.5, aby uzyskać więcej informacji na temat konwersji typów danych.
W JavaScripcie 1.4 i późniejszym, metody java.lang.Object są dziedziczone przez JavaArray.
[edytuj] Zgodność wsteczna
[edytuj] JavaScript 1.3 i wersje wcześniejsze
Metody java.lang.Object nie są dziedziczone przez JavaArray. W dodatku, metoda toString jest dziedziczona z obiektu Object i zwraca następującą wartość:
[object JavaArray]
Musisz określić klasę obiektu, tak jak jeden zwracany przez java.lang.Object.forName, dla parametru componentType, newInstance kiedy użyjesz tej metody do utworzenia tablicy. Nie możesz użyć obiektu JavaClass dla parametru componentType.
[edytuj] Własności
length: Numer elementu w Java array reprezentowana przez JavaArray.
[edytuj] Metody
toString: W JavaScript 1.4, ta metoda ta nie jest uwzględniana przez odziedziczona metodę java.lang.Object.toString. W JavaScript 1.3 lub lub wcześniejszym, metoda ta zwraca ciąg znaków (stringa) identyfikującego obiekt jako JavaArray.
W JavaScript 1.4 lub późniejszym, JavaArray dziedziczy również metody z superklasy tablicy Javy, java.lang.Object.
[edytuj] Przykłady
[edytuj] Przykład: Tworzenie JavaArray w JavaScript
W tym przykładzie, JavaArray tablicaBitowa jest stworzona przez metodę java.lang.String.getBytes, która zwraca tablicę.
var stringJavy = new java.lang.String("Witaj świecie!");
var tablicaBitowa = stringJavy.getBytes();
[edytuj] Przykład: Tworzenie JavaArray w JavaScript z metodą newInstance
W JavaScript 1.4, możesz użyć obiekt JavaClass jako argument dla metody newInstance, która tworzy tablicę, jak jest to pokazane w następującym kodzie:
var dogs = java.lang.reflect.Array.newInstance(java.lang.String, 5);
W JavaScript 1.1, użyj obiektu klasy, zwracanego java.lang.Class.forName jako argument dla metody newInstance, jak pokazuje następujący kod:
var dataType = java.lang.Class.forName("java.lang.String");
var dogs = java.lang.reflect.Array.newInstance(dataType, 5);