2011-06-24 53 views
0

我運行JUnit測試,得到錯誤:java.lang.ClassCastException:java.util.ArrayList中

GroupOptionInputPanelTest.java:

public void setUp() {   
     groupOptionInputPanel = new GroupOptionInputPanel(TEST_ID, new Model(new ArrayList()), null); 
    } 

GroupOptionInputPanel.java:

public GroupOptionInputPanel(String id, IModel model, final Form parentForm) { 
     this(id, model, parentForm, false); 
    } 

。 ..

ListView options = new GroupElementListView("options", getSelectionGroup().getSelectionOptions(), getInitTabIndex()) { 

..

public abstract class AbstractOptionPanel extends Panel { 
public SelectionGroup getSelectionGroup() { 
     return (SelectionGroup) getModel().getObject(); 
    } 

錯誤:

java.lang.ClassCastException: java.util.ArrayList 
    at com.bgc.ordering.wizard.front.groupoptions.AbstractOptionPanel.getSelectionGroup(AbstractOptionPanel.java:33) 
    at com.bgc.ordering.wizard.front.groupoptions.GroupOptionInputPanel.<init>(GroupOptionInputPanel.java:54) 
    at com.bgc.ordering.wizard.front.groupoptions.GroupOptionInputPanel.<init>(GroupOptionInputPanel.java:47) 

我怎樣才能解決這個問題?

public GroupOptionInputPanel(String id, IModel model, final Form parentForm, final boolean canDisplayExclamationMark) { 
     super(id, model); 
     this.setOutputMarkupId(true); 

     ListView options = new GroupElementListView("options", getSelectionGroup().getSelectionOptions(), getInitTabIndex()) { 


    public Model(Serializable object) 
    { 
     setObject(object); 
    } 

模型是Wicket API。

回答

1

您的模型由一個ArrayList實例組成,您試圖將其轉換爲SelectionGroupnew Model(new SelectionGroup())應該修復它。

+0

@ kasim然後你不能修復它。您希望有一個SelectionGroup實例 - 如果無法以某種方式創建它,則無法獲取它。 (好吧,你可以使用反射,但那會很奇怪) – Bozho

+0

我懷疑GroupOptionInputPanel參數arrayList。 – TechFind

+0

我沒有收到最後的評論。 – Bozho

相關問題