我創建了一個接口Columns
,該接口由ColumnsReportname
模式的多個枚舉擴展。界面中定義的方法之一是getHeaderText()
。你可以重鑄枚舉嗎?
我也創建了一個方法createHeader(Columns[])
其中理想基於ColumnsReportname.values()
創建標題行。
除非它不起作用,因爲createHeader(Columns[])
不會接受ColumnsReportname
參數。
所以我可以只是創建一個標題名稱列表,並通過這些,但我需要或有一個更簡單的方法嗎?
方法:
public void setHeader(Columns[] columns) {
List<Object> headers = new Vector<Object>();
for (Columns c : columns) {
headers.add(c.getHeaderText());
}
headerRow = new Row(headers, true);
}
枚舉:
public enum ColumnsObligations implements Columns {
CLAIMNO(15, "Claim #", false), ACTIONDATE(10, "Action Dt.", false), DATEPAID(10, "Dt. Paid", false), ACTION(15, "Action"), CLAIMANT(
15, "Claimant"), FY(6, "FY", false), FUNDCITE(15, "Fund Cite"), AMTPAID(15, "Amt Paid", true), CHECKNO(15, "Ins. Dpt."), VOUCHERNO(
15, "Voucher No.");
private ColumnsObligations(int colWidth, String headerText, boolean totaled) {
this.colWidth = colWidth;
this.headerText = headerText;
this.totaled = totaled;
}
private ColumnsObligations(int colWidth, String headerText) {
this.colWidth = colWidth;
this.headerText = headerText;
this.totaled = false;
}
private final int colWidth;
private final String headerText;
private final boolean totaled;
public int getColWidth() {
return colWidth;
}
public String getHeaderText() {
return headerText;
}
public boolean isTotaled() {
return this.totaled;
}
謝謝。
編輯:溶液
public <T extends Columns> void setHeader(T... columns) {
List<Object> headers = new Vector<Object>();
for (Columns c : columns) {
headers.add(c.getHeaderText());
}
headerRow = new Row(headers, true);
}
你傳遞'ColumnsReportname'到'Columns []'或'ColumsnReportname []'?如果你向我們展示一些代碼會更好。 –
你能告訴我們一些代碼嗎? – arshajii
已添加示例。 –