簡體   English   中英

如何在Java中聲明參數化對象的數組?

[英]How to declare array of parameterized object in Java?

我必須聲明PDPagePDRectangle參數

Float width = 8.5f;
Float height = 5f;
Float dpi = 72f;
PDRectangle size = new PDRectangle(width*dpi, height*dpi);
PDPage page = new PDPage(size);

但我想聲明多重PDPage自定義PDRectangle大小的數組。

不完全是這樣的:

ArrayList<PDPage> page = new ArrayList<PDPage(size)>();

創建列表和初始化它的元素是有區別的。 列表的初始化只關心泛型類規范:

List<PDPage> page = new ArrayList<>();

然后,您可以添加多個具有自定義sizePDPage實例:

page.add(new PDPAge(size)); // This can be done multiple times, e.g. in a loop

正如 Mureinik 在他的回答中所說,您首先必須實例化列表,

ArrayList<PDPage> pages = new ArrayList<>();

在向其添加實例之前(例如十次):

for(int i = 0; i < 10; i++) {
    pages.add(new PDPage(size))
}

如果絕對需要列表中的所有對象具有相同的維度,您理論上可以創建一個子類:

public class SpecialPDPage {
    private static final Float width = 8.5f;
    private static final Float height = 5f;
    private static final Float dpi = 72f;
    private static final PDRectangle size = new PDRectangle(width*dpi, height*dpi);

    public SpecialPDPage() {
        super(size);
    }
}

然后初始化列表並添加對象,如下所示:

ArrayList<SpecialPDPage> pages = new ArrayList<>();
for(int i = 0; i < 10; i++) {
    pages.add(new SpecialPDPage())
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM