java或scala 类型转换 object integer long Double string BigDecimal 互转 安全的方法

2019-09-13 10:02:39 | 编辑

1.java

基础类型的转换可以强转,但是容易报错,也可以使用对象类型的方法,也容易报错,有时候不知道Object是什么类型。那么有个编程小技巧需要记录一下。

先转string,再转我们需要的类型


Object类型转换为long


Object o = new Object();

long l = Long.valueOf(String.valueOf(o));

long l = Long.valueOf(String.valueOf(o)).longValue();

以此类推,Integer,Double等都可以使用这种方法


2.scala

在scala中我也遇到同样的问题,我获取到一个变量,类型不确定,我需要转double后运算,开始我一个一个判断是BigDecimal还是Double

var value = if(originalValue.isInstanceOf[BigDecimal]) originalValue.asInstanceOf[BigDecimal].doubleValue() else originalValue.asInstanceOf[Double]

然而过了很久代码还是报错,因为变量是Integer。我也可以一个一个全部判断完,但这太扯了。


但解决方法还是一样,scala 中变量转string再转double更方便

var value = if(originalValue!=null) originalValue.toString.toDouble else 0




登录后即可回复 登录 | 注册
    
关注编程学问公众号