在Java中强制用户填充varargs参数的好方法 [英] Nice way to force user fill varargs parameter in Java

查看:56
本文介绍了在Java中强制用户填充varargs参数的好方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在调用构造函数时强制用户填写可选参数:

I want to force the user to fill in an optional parameter when calling my constructor:

public MyClass(String... params) {
    this.params = params;
}

当前,以下代码有效:

new MyClass();

我想阻止它.我想到了:

I want to prevent it. I thought of this:

public MyClass(String param1, String... otherParams) {
    this.params = new String[1 + otherParams.length];
    this.params[0] = param1;
    // fill 1..N params from otherParams
}

String []参数不是一个选择,因为我需要使用逗号分隔的参数的能力.

String[] params is not an option, because I need the ability to use comma separated args.

有没有很好的解决方案来实现这一目标?请不要说varargs参数必须是可选的.问题不是这个.

Are there any nice solutions to achieve this? Please don't say that varargs parameters must be optional. The question is not about that.

推荐答案

也许下面是一个额外的默认构造函数?

Maybe the following, an extra default constructor?

/**
 * Please provide at least one parameter.
 */
@Deprecated
public MyClass() {
    throw new IllegalStateException("Please provide at least one parameter");
}

这篇关于在Java中强制用户填充varargs参数的好方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆