У меня есть фрагмент кода ниже - который не работает .
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 []?