为了账号安全,请及时绑定邮箱和手机立即绑定

在使用带有可变参数的构造函数时,我如何强制必须传递至少一个参数?

在使用带有可变参数的构造函数时,我如何强制必须传递至少一个参数?

呼唤远方 2023-05-17 15:08:53
不可否认,我有以下实施不佳的课程:public class Fari{    String name;    String[] group;    public Fari(String name, String... group) {        this.name = name;        this.group = group;    }    // getters, setters}这实际上是以这样一种方式计划的,即传递名称和至少一个组标签。但是我可以只用一个参数创建一个新的 Fari 对象而不会出现编译错误:Fari f = new Fari("A");以 group 属性为 null 的对象结尾。有没有办法强制将至少一个字符串作为可变参数参数传递?我可以将参数更改String... group为 aList<String>但我也必须接触所有其他类。除此之外,可以传递一个空列表,这对我没有真正的帮助。如果创建的对象应该有一个名称和至少一个组标签,我该怎么办?
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

解决这个问题的典型方法是

public Fari(String name, String requiredGroup, String... group)


查看完整回答
反对 回复 2023-05-17
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

group如果大小 < 1,您还可以检查大小并抛出错误。像这样:


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实现来在你的代码中识别它。


查看完整回答
反对 回复 2023-05-17
  • 2 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信