我有下面的代碼片段 - 其中不起作用。爲什麼我無法使用(Point2d.Double)進行類型轉換? - Java
private void startAddingTrackPointValue()
{
Set<Point2D.Double> keySet = this.trackPointList.keySet();
Point2D.Double[] keys = (Point2D.Double[]) keySet.toArray();
for(int i = 0; i < keys.length; i++)
{
System.out.println(keys[i]);
}
}
產生例外是,這...
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.awt.geom.Point2D$Double;
at SegmentFactory.startAddingTrackPointValue(SegmentFactory.java:170)
at SegmentFactory.<init>(SegmentFactory.java:44)
at TestClass.main(TestClass.java:8)
但這工作正常,如果我不喜歡這樣,
private void startAddingTrackPointValue()
{
Set<Point2D.Double> keySet = this.trackPointList.keySet();
Object[] keys = (Object[]) keySet.toArray();
for(int i = 0; i < keys.length; i++)
{
System.out.println(keys[i]);
}
}
問題是,爲什麼我不能用Point2D.Double []進行類型轉換?
有趣的java :),謝謝喬伊 – doNotCheckMyBlog