Java-to-JavaScript Data Conversion
In the last two sections, we discussed the rules by which values are converted when JavaScript reads and writes Java fields and invokes Java methods. Those rules explained how the JavaScript JavaObject, JavaArray, and JavaClass objects convert data; they apply only to the case of JavaScript manipulating Java. When Java manipulates JavaScript, the conversion is performed by the Java JSObject class, and the conversion rules are different. Figure 22-4 and Figure 22-5 illustrate these conversions.
Figure 22-4. Data conversions performed when Java writes JavaScript values
Figure 22-5. Data conversions performed when Java reads JavaScript values
The point to remember when studying these figures is that Java can
interact with JavaScript only through the API provided by the
JSObject
class. Because Java is a strongly typed language, the methods defined
by this class can work only with Java objects, not with primitive
values. For example, when you read the value of a JavaScript number,
the getMember( )
method returns a
java.lang.Double
object, rather than a primitive
double
value.
When writing JavaScript functions that are invoked from Java, bear in mind that the arguments passed by Java are either JavaScript objects from unwrapped Java JSObjects, or JavaObjects. ...
Get JavaScript: The Definitive Guide, Fourth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.