呼喚遠(yuǎn)方
2023-05-17 15:08:53
不可否認(rèn),我有以下實(shí)施不佳的課程:public class Fari{ String name; String[] group; public Fari(String name, String... group) { this.name = name; this.group = group; } // getters, setters}這實(shí)際上是以這樣一種方式計(jì)劃的,即傳遞名稱和至少一個(gè)組標(biāo)簽。但是我可以只用一個(gè)參數(shù)創(chuàng)建一個(gè)新的 Fari 對(duì)象而不會(huì)出現(xiàn)編譯錯(cuò)誤:Fari f = new Fari("A");以 group 屬性為 null 的對(duì)象結(jié)尾。有沒有辦法強(qiáng)制將至少一個(gè)字符串作為可變參數(shù)參數(shù)傳遞?我可以將參數(shù)更改String... group為 aList<String>但我也必須接觸所有其他類。除此之外,可以傳遞一個(gè)空列表,這對(duì)我沒有真正的幫助。如果創(chuàng)建的對(duì)象應(yīng)該有一個(gè)名稱和至少一個(gè)組標(biāo)簽,我該怎么辦?
2 回答

白豬掌柜的
TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
解決這個(gè)問題的典型方法是
public Fari(String name, String requiredGroup, String... group)

ABOUTYOU
TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
group如果大小 < 1,您還可以檢查大小并拋出錯(cuò)誤。像這樣:
public class Fari {
String name;
String[] group;
public Fari(String name, String... group) throws Exception {
this.name = name;
if (group.length < 1) throw new Exception();
this.group = group;
}
}
當(dāng)然你可以使用你自己的Exception實(shí)現(xiàn)來在你的代碼中識(shí)別它。
添加回答
舉報(bào)
0/150
提交
取消