java.lang.ClasscastException:java.lang.Long无法强制转换为java.lang.Double

时间:2017-02-20 15:59:52

标签: java json sling

我已经为Json编写了一个java代码,同时从一个页面属性中删除了一个来自Latitude页面的Sting值errorjava.lang.ClassCastException.我在这里使用ValueMap如果它包含该纬度值,那么我必须将它存储在Double中。代码示例

import org.apache.sling.api.resource.ValueMap
private static final String G_LAT = "37.7608337";
protected ValueMap pageProp;
Double lat = null;
if(pageProp.containsKey(G_LAT))

lat = (Double) pageProp.get(G_LAT); // Getting an exception here

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您可以使用Double.parseDouble()将String变量转换为double。

String str="2.036"
Double d=Double.parseDouble(str);

答案 1 :(得分:0)

这似乎是一个演员异常请参考以下网址

java.lang.Long cannot be cast to java.lang.Double

你可以试试这个。 lat =(Double)pageProp.get(G_LAT,long);

get方法返回一个Object,它将被强制转换为Double,这是一个缩小操作。因此,在将对象转换为Double之前,尝试将对象转换为long。