我不得不承认以下实施不佳的课程:
public class Fari{
String name;
String[] group;
public Fari(String name, String... group) {
this.name = name;
this.group = group;
}
// getters, setters
}
实际上,这是通过计划名称和至少一个组标签的方式进行的。但是我可以只用一个参数创建一个新的Fari对象,而无需编译erorr:
Fari f = new Fari("A");
以组属性结尾为null的对象结尾。有没有一种方法可以强制至少一个字符串作为varargs参数传递?
我可以将参数String... group
更改为List<String>
,但随后我也必须接触所有其他类。除此之外,还可以传递一个空列表,这对我没有帮助。如果创建的对象应该具有名称和至少一个组标签,我该怎么办?
答案 0 :(得分:3)
解决此问题的典型方法是
public Fari(String name, String requiredGroup, String... group)
答案 1 :(得分:0)
如果尺寸小于1,您还可以检查group
的尺寸并抛出错误。
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;
}
}
当然,您可以使用自己的Exception
实现在代码中进行标识。