В большинстве случаев, если Вы передаёте JavaArray или JavaObject JavaScript в качестве параметра Java-методу, Java просто снимает оболочку с объекта; в некоторых случаях объект приводится к другому типу данных в соответствии с правилами, описанными в следующей таблице:
Любой интерфейс или класс, совместимый при присвоении с развёрнутым /unwrapped объектом.
Объект разворачивается.
java.lang.String
Объект разворачивается, вызывается метод toString развёрнутого Java-объекта, и результат возвращается как новый экземпляр объекта java.lang.String.
byte
char
double
float
int
long
short
Объект разворачивается, и возникает одна из следующих ситуаций:
Если развёрнутый Java-объект имеет метод doubleValue, the JavaArray или JavaObject конвертируется в значение, возвращаемое этим методом.
Если развёрнутый Java-объект не имеет метода doubleValue, возникает ошибка.
boolean
В JavaScript 1.3 и более поздних версиях, объект разворачивается, и возникает одна из следующих ситуаций:
Если объект - null, он конвертируется в false.
Если объект имеет какое-либо другое значение, он конвертируется в true.
В JavaScript 1.2 и ранее, объект разворачивается, и возникает одна из следующих ситуаций:
Если развёрнутый объект имеет метод booleanValue, the исходный объект конвертируется в return-значение.
Если развёрнутый объект не имеет метода booleanValue, конвертация терпит неудачу.
Интерфейс или класс совместим для присвоения с развёрнутым объектом, если развёрнутый объект является экземпляром типа Java-параметра. То есть, следующий оператор должен возвращать true:
развёрнутыйОбъект instanceof параметраТип