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