如何从 Object 转换为 Double[]
How to convert from Object to Double[]
我在 Java 8 中有一个对象,它实际上是一个包含 Double 对象的对象数组。我需要检查(使用 instanceof)并获取值。但我总是在尝试转换为 Object[] 或 Double[] 时出错。
这是Eclipse表达式中的变量
我在 运行 代码
时得到这个异常
Object position = whitelist.get("code").get("position");
if(position!=null){
feature.setGeometry(new Point(((Double []) position)[0],((Double []) position)[1]));
}
java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Ljava.lang.Object;
但它适用于 ideone.com:
<script src="http://ideone.com/e.js/J2ZJSV" type="text/javascript" ></script>
编辑:
whitelist.get("code").get("position")
显然 returns 一个 ArrayList
包含 Double
个对象。
因此您可以简单地写:
List<Double> position = (List<Double>)whitelist.get("code").get("position");
if (position!=null)
feature.setGeometry(new Point(position.get(0),position.get(1)));
我很担心这个错误。解决这个错误非常简单,但现在我 post 在这里编辑(这显然不是最好的一天)我也会 post 解决方案。
对象的类型是ArrayList,所以我应该转换成这个类型并检查这个类型。
Object position = whitelist.get("code").get("position");
if(position!=null && position instanceof List<?>){
List<Double> point = (List) position;
feature.setGeometry(new Point(point.get(0),point.get(1)));
}
我在 Java 8 中有一个对象,它实际上是一个包含 Double 对象的对象数组。我需要检查(使用 instanceof)并获取值。但我总是在尝试转换为 Object[] 或 Double[] 时出错。
这是Eclipse表达式中的变量
我在 运行 代码
时得到这个异常Object position = whitelist.get("code").get("position");
if(position!=null){
feature.setGeometry(new Point(((Double []) position)[0],((Double []) position)[1]));
}
java.lang.ClassCastException: java.util.ArrayList cannot be cast to [Ljava.lang.Object;
但它适用于 ideone.com:
<script src="http://ideone.com/e.js/J2ZJSV" type="text/javascript" ></script>
编辑:
whitelist.get("code").get("position")
显然 returns 一个 ArrayList
包含 Double
个对象。
因此您可以简单地写:
List<Double> position = (List<Double>)whitelist.get("code").get("position");
if (position!=null)
feature.setGeometry(new Point(position.get(0),position.get(1)));
我很担心这个错误。解决这个错误非常简单,但现在我 post 在这里编辑(这显然不是最好的一天)我也会 post 解决方案。
对象的类型是ArrayList,所以我应该转换成这个类型并检查这个类型。
Object position = whitelist.get("code").get("position");
if(position!=null && position instanceof List<?>){
List<Double> point = (List) position;
feature.setGeometry(new Point(point.get(0),point.get(1)));
}