Взаимодействие JavaScript с Java
Когда Вы обращаетесь к пакету или классу Java или работаете с объектом или массивом Java, Вы используете один из специальных объектов LiveConnect. Доступ JavaScript к Java имеет место в объектах, резюме по которым дано в следующей таблице.
JavaArray |
Обёрнутый/wrapped массив Java, доступ к которому выполняется в коде JavaScript. | ||
JavaClass |
Ссылка JavaScript на Java-класс. | ||
JavaObject |
Обёрнутый объект Java, доступ к которому выполняется в коде JavaScript. | ||
JavaPackage |
Ссылка JavaScript на Java-пакет. |
ПРИМЕЧАНИЕ:
Поскольку Java является строго типизированным, а JavaScript -слабо типизированным языком, машина выполнения JavaScript конвертирует значения аргументов в соответствующие типы данных тех языков, которые Вы используете с LiveConnect. См. .
Иногда существование объекта LiveConnect прозрачно, поскольку Вы работаете с Java интуитивно. Например, Вы можете создать в Java String -объект и присвоить его переменной JavaScript myString с помощью оператора new в конструкторе Java таким образом:
var myString = new java.lang.String("Hello world")
В предыдущем примере переменная myString это JavaObject, потому что она содержит экземпляр Java String-объекта. Как JavaObject, myString имеет доступ к методам public-экземпляра java.lang.String и его суперкласса java.lang.Object. Эти методы Java доступны в JavaScript как методы JavaObject, и Вы можете вызывать их так:
myString.length() // возвращает 11
Вы имеете доступ к конструкторам, полям и методам класса через тот же синтаксис, который используете в Java. Например, следующий код JavaScript использует свойства объекта request для создания нового экземпляра класса Bug и присвоения затем этого нового экземпляра переменной JavaScript bug. Поскольку Java-класс требует целочисленного значения для первого поля, этот код конвертирует строковое свойство объекта request к целому числу, перед тем как передать его конструктору.
var bug = new Packages.bugbase.Bug(
parseInt(request.bugId),
request.bugPriority,
request);