加入收藏 收藏网站 设为首页 设为首页
招生考试网
学历类| 阳光高考 研 究 生 自学考试 成人高考 专 升 本 中考会考 外语类| 四 六 级 职称英语 商务英语 公共英语 日语能力
资格类| 公 务 员 报 关 员 银行从业 司法考试 导 游 证 教师资格 财会类| 会 计 证 经 济 师 会计职称 注册会计 税 务 师
工程类| 一级建造 二级建造 造 价 师 造 价 员 咨 询 师 监 理 师 医学类| 卫生资格 执业医师 执业药师 执业护士 国际护士
计算机| 等级考试 软件水平 应用能力 其它类| 书画等级 美国高考 驾 驶 员 书法等级 少儿英语 报 检 员 单 证 员 出国留学
 招生考试网 - 计算机等级考试 - 考试辅导 - 正文

 
java与javascript的数据类型转换
来源:fjzsksw.com 2010-2-2 编辑:zhoupanyu 【字体:小 大】
无论何时,从一种语言中调用另一种语言的时候,都必须考虑的问题是一种语言的类型如何映射到另一种语言的类型。假设把一个java.lang.String和一个java.lang.Integer变量绑定到一个Bindings对象中,当JavaScript脚本使用这些变量的时候,它所见到的值是什么类型的呢?如果脚本的计算结果是JavaScript布尔类型的值,eval()方法所返回的对象是什么类型的呢?

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  目前想到的解决方案是:

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

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

 



 
网站版权与免责声明
①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系.
最新文章
热门文章

报名考试
全国 | 黑龙江 | 吉林 | 辽宁 | 内蒙古
青海 | 宁夏 | 甘肃 | 新疆 | 陕西
西藏 | 北京 | 天津 | 河北 | 山东
江苏 | 安徽 | 河南 | 上海 | 浙江
福建 | 广东 | 山西 | 湖南 | 湖北
江西 | 广西 | 海南 | 云南 | 贵州
四川 | 重庆
分省高校计算机考试
黑龙江 | 吉林 | 辽宁 | 内蒙古 | 河北
北京 | 天津 | 新疆 | 甘肃 | 宁夏
青海 | 陕西 | 山西 | 河南 | 山东
江苏 | 安徽 | 浙江 | 福建 | 广东
海南 | 广西 | 江西 | 湖北 | 湖南
四川 | 上海 | 重庆 | 贵州 | 云南
西藏
成绩查询
报考指南
试题答案
模拟试题
考试辅导
计算机一级 | 计算机二级 | 计算机三级 | 计算机四级
经验交流
高校计算机