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 に答える