Преобразование типов Java в javascript - PullRequest
1 голос
/ 31 января 2011

Может кто-нибудь объяснить, что это значит?

Бокс объектов для числовых значений Java (байт классов java.lang, Характер, Короткий, Инт, Длинный, Плавающий, и Double) распакованы и преобразованы до ближайшего доступного JavaScript числовой тип, за исключением , когда они объявленный тип возврата из метода или результат нового выражения с использованием ключевое слово Packages для каждого апплета. В В этом случае объект будет вернулся к движку JavaScript как Java-объект.

Java Boolean - это преобразован в логическое JavaScript, за исключением , когда это объявленный возврат тип из метода или результата новое выражение, использующее апплет Пакеты с ключевыми словами. В этом случае объект бокса будет возвращен Движок JavaScript как объект Java.

Строки Java преобразуются в Строки JavaScript, за исключением , когда они являются результатом нового выражения используя ключевое слово Packages для каждого апплета. В этом случае строка Java вернулся к движку JavaScript как Java-объект.

Это из спецификации liveconnect , но я не могу понять, когда тип java будет преобразован в тип javascript, а когда - нет. Что означает кроме части? Есть примеры?

1 Ответ

2 голосов
/ 31 января 2011

Допустим, у вас есть

Integer i;
i = 1;

Затем int 1 автоматически преобразуется в объект Integer; это автобокс.

Бокс объектов для числовых значений Java (байт классов java.lang, Характер, Короткий, Инт, Длинный, Плавающий, и Double) распакованы и преобразованы до ближайшего доступного JavaScript числовой тип,

означает, что преобразованное таким образом целое число вернется к нативному javascript int.

кроме случаев, когда они объявлены тип возврата из метода или результат нового выражения с использованием ключевое слово пакетов для апплета. В этом случай, объект бокса будет вернулся к движку JavaScript как Java-объект.

... но если вы объявили функцию, которая возвращает Integer, она вместо этого будет преобразована в представление объекта Java. Это также относится к тому, что вы создали с помощью этого ключевого слова Packages. (я не знаю, что это такое, но вот что это значит.)

Обновление: вот пример из спецификации:

в коде JS:

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

Это говорит о том, что если val это, скажем, Integer в Java, то в этом случае оно становится JSObject в javascript.

Строки Java преобразуются в Строки JavaScript, кроме случаев, когда они являются результатом нового выражения используя ключевое слово Packages для каждого апплета. В этом случае строка Java вернулся к движку JavaScript как Java-объект.

Аналогично, если у вас есть строка Java

String s = "I am a string."

с внутренним представлением и методами Java будет преобразовано в строку javscrip0t (другая реализация и методы), если вы не создали ее с ключевым словом Packages.

...