我的程序讀取的是一個帶有5個單元參數的文件。 我用這些參數建立了一個單元類,但是現在被要求能夠讀取另一個文件,這個文件有6個參數,但它讓我想到如果我能得到一個具有10個參數的文件,並且我的單元類不會是準備存儲所有的數據,所以我想知道如果我可以在運行時將更多的變量添加到類中。運行時編輯類
樣品
單元類
public class Unit implements Serializable {
private String name;
private String unitId;
private byte year;
private String semester;
private String type;
private int credits;
public Unit(String name, String unitId, byte year, String semester, int credits) {
setName(name);
setUnitId(unitId);
setYear(year);
setSemester(semester);
setType(null);
setCredits(credits);
}
public Unit(String name, String unitId, byte year, String semester, String type, int credits) {
setName(name);
setUnitId(unitId);
setYear(year);
setSemester(semester);
setType(type);
setCredits(credits);
}
// Set's get's and all that stuff.
}
示例代碼讀取文件
Scanner input = new Scanner(f);
ArrayList<Unit> units = new ArrayList();
while (input.hasNext()) {
String str = input.nextLine();
if (ignoreFirstLine) {
ignoreFirstLine = false;
} else {
String[] ArrayStr = str.split(";");
if(ArrayStr.length == 5){
Unit unit = new Unit(ArrayStr[0], ArrayStr[1], Byte.parseByte(ArrayStr[2]), ArrayStr[3], Integer.parseInt(ArrayStr[4]));
units.add(unit);
} else if (ArrayStr.length == 6){
Unit unit = new Unit(ArrayStr[0], ArrayStr[1], Byte.parseByte(ArrayStr[2]), ArrayStr[3], ArrayStr[4], Integer.parseInt(ArrayStr[5]));
units.add(unit);
} else {
//Modify classes in Runtime?
}
編輯:我的英語很不錯:d
'Builder'設計模式是一個不錯的選擇。它處理具有一些必需參數和一些可選參數的對象。 – Sam