0

我有一个接受 Button2 子类型的方法。此方法进行一些计算并创建按钮以放置在 ArrayList 中,以便它们以图形方式排列。这是我的代码:

public void createButtonArray(ArrayList<? extends Button2> buttonList,
        int xLength, int yLength, int width, int height, int inset) {

    // The total size for the inset, or spaces between buttons
    int totalInset = (xLength - 1) * inset;
    // The total height = height of buttons + size of insets
    int totalHeight = totalInset + 5 * height;
    // ... More calculations

它涉及到这一点。我不知道如何说下一行,因为编译器给了我语法错误。如何创建一个属于 Button2 子类型的按钮?

Button2<?> button = new Button2(xpos, ypos, width, height);
buttonList.add(button);
counter++;

我也试过这个:

buttonList.add(new <? extends Button2>(xpos,ypos,width,height));

这也给了我一个错误。如何创建此按钮以添加到我的通用 ArrayList?

4

1 回答 1

1

您不能将任何对象(null 除外)添加到ArrayList<? extends Button2>中,但您可以只传递ArrayList<Button2>给您的函数,然后执行buttonList.add(new Button2(xpos,ypos,width,height)).

于 2012-12-23T23:43:03.137 回答