设为首页 加入收藏

TOP

java与javascript的数据类型转换
2014-11-23 21:26:59 】 浏览:5981
Tags:java javascript 数据 类型 转换

  无论何时,从一种语言中调用另一种语言的时候,都必须考虑的问题是一种语言的类型如何映射到另一种语言的类型。假设把一个java.lang.String和一个java.lang.Integer变量绑定到一个Bindings对象中,当java script脚本使用这些变量的时候,它所见到的值是什么类型的呢?如果脚本的计算结果是java script布尔类型的值,eva l()方法所返回的对象是什么类型的呢?


  当把一个Java对象存储到一个Bindings对象时,它会根据以下方式转换为java script:


  1、Boolean对象转换为java script布尔值。


  2、所有java.lang.Number包装对象转换为java script数字。包括java的Byte\Short\Integer \Long\Float\Double,还有java.math.BigInteger和java.math.BigDouble。


  注意:java script的数值类型是基于64位的浮点数,和Java的双精度类型类似。并不是所有的long值都可以在一个double中精确地表示。因此,如果把一个Java中long型数据传递给java script,可能会丢失数据。当使用BigInteger和BigDecimal 的时候,同样要注意这个问题。即:如果Java值比java script所能表示的值有更高的精度的话,后面的数字可能会丢失。或者,如果Java的值比 Double.MAX_VALUE大,它将会转换为一个java script的Infinity值。


  3、java的Character和String对象转换为java script字符串。


  4、java空值转换为java script的空值。


  5、任何其它的Java对象都只是被包装到一个java script的JavaObject对象中。有关JavaObject的介绍在java script如何脚本化java中介绍。


  当java script类型转换为java数据类型时,转换如下:


  1、java script布尔值转换为java的Boolean对象。


  2、java script字符串转换为java的String对象。


  3、java script数字转换为java的Double对象。Infinity和NaN值也会适当适当的转换为java中的Infinity和NaN


  4、java script空值和未定义的值转换为Java空值。


  5、java script对象和数组转换为类型不明确的Java对象。这些值可以传递回给java script,但却有一个专门供Java程序使用的未发布的API。


  注意:String、Boolean和Number的java script外包对象被转换为不明确的Java对象,而不是它们所对应的Java类型。


  想把js的array转成java类型,报了 java.lang.ClassCastException: sun.plugin.java script.ocx.JSObject cannot be cast to [Ljava.lang.String; 是类的转换问题!


  目前想到的解决方案是:


  1。用JSON,采用JSON把JS对象转成JSON字符串,然后JAVA在把JSON字符串转成JAVA类型,不过这样太麻烦


  2。直接采用传 “字符串”


  编辑特别推荐:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇java伪半透明JTrxtArea 下一篇Java中接口的使用概要

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目