Hallo. Ich habe einen Vector mit Generics, also er sieht so aus:
wenn ich jedoch den Vector in ein Array speichern will, mithilfe der Methode copyList.toArray(); wirft es mir eine Exception:
Hier der Code zum speichern als Array, hier tritt auch das Problem auf:
Woran kann dies liegen, durch die Generics ist doch schon sichergestellt das im Array nur CopyListEntrys stehen können, wodurch es auch keine Probleme beim Casten geben sollte. Der Vector ist auch initalisiert.
Code:
Vector<CopyListEntry> copyList;
wenn ich jedoch den Vector in ein Array speichern will, mithilfe der Methode copyList.toArray(); wirft es mir eine Exception:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lgecko.model.CopyListEntry;
at gecko.model.AbstractCopyList.addFiles(AbstractCopyList.java:24)
at gecko.model.GeckoModel.copy(GeckoModel.java:82)
at gecko.controller.GeckoController.copy(GeckoController.java:33)
at gecko.view.actions.CopyAction.actionPerformed(CopyAction.java:27)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Hier der Code zum speichern als Array, hier tritt auch das Problem auf:
Code:
CopyListEntry[] oldEntries = (CopyListEntry[]) copyList.toArray();
Woran kann dies liegen, durch die Generics ist doch schon sichergestellt das im Array nur CopyListEntrys stehen können, wodurch es auch keine Probleme beim Casten geben sollte. Der Vector ist auch initalisiert.