2017-02-20 125 views
1

我已经编写了一个Java代码给Json,同时从一个页面中检索Sting值,该页面是来自Page属性的Latitude, errorjava.lang.ClassCastException.这里我使用ValueMap如果它包含纬度值,那么我必须将它存储在Double中。代码示例是java.lang.ClasscastException:无法将java.lang.Long转换为java.lang.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 

谢谢你的帮助!

+0

为了避免错误的转换,可以将'java.lang.Number'强制转换为'java.lang.Long'继承自'java.lang.Number'。然后,在检索到的数字上使用'doubleValue()'方法。 – cardman

+1

您可以在尝试上述语法编译器错误后提供一些语法 – User

+0

'Long longLat =(long)pageProp.get(G_LAT);''lat = longLat.doubleValue();' – cardman

回答

0

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

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

这似乎是一个转换异常,请参阅以下网址

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

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

get方法返回一个Object,它将被转换为Double,这是一个缩小的操作。因此,在将该对象转换为Double之前,尝试将该对象转换为很长时间。

相关问题