下面是我用來構造一個響應並將其發回給調用者的響應對象,因爲我有一個請求/響應模式的系統。將兩個構造函數簡化爲一個
public class DataResponse {
private String response;
private DataErrorEnum error;
private DataStatusEnum status;
public DataResponse(String response, DataErrorEnum error, DataStatusEnum status) {
this.response = response;
this.error = error;
this.status = status;
}
public String getResponse() {
return this.response;
}
public DataErrorEnum getError() {
return this.error;
}
public DataStatusEnum getStatus() {
return this.status;
}
}
現在,在我的應用程序代碼中的一些時間,我創建響應對象是這樣的:
new DataResponse(null, errorEnum, statusEnum);
正如你看到的,我明確設置null
這是確定,但有時它會引起混淆的是哪場爲空,所以我決定創建這樣的DataResponse類的另一個構造:
public class DataResponse {
private String response;
private DataErrorEnum error;
private DataStatusEnum status;
public DataResponse(String response, DataErrorEnum error, DataStatusEnum status) {
this.response = response;
this.error = error;
this.status = status;
}
// new constructor
public DataResponse(DataErrorEnum error, DataStatusEnum status) {
this.response = null;
this.error = error;
this.status = status;
}
public String getResponse() {
return this.response;
}
public DataErrorEnum getError() {
return this.error;
}
public DataStatusEnum getStatus() {
return this.status;
}
}
所以,我現在可以創建對象是這樣的:通過這,我不需要發送空響應,因爲這是默認情況下在我的其他構造函數。
new DataResponse(errorEnum, statusEnum);
現在我的問題是 - 有沒有什麼辦法可以將兩個構造函數合併爲一個?或者我總是需要兩個構造函數?
如果通過「將兩個構造函數合併爲一個」來表示您希望能夠將兩個或三個參數傳遞給同一個構造函數,否則不能這樣做。你已經做了什麼錯了? – moarCoffee