我有两个类似的类,一个接收一个参数(让我们说int类型),另一个接收相同类型的参数两次。对于这两个输入,我需要进行相同的检查(如果数据不好,则抛出异常),这两个类都有一些功能。
我想创建具有两个构造函数的超级类型,一个有一个参数,另一个有两个参数。这将是可行的,但问题是,如果有三个或更多参数的选择,应该做些什么。
所以,如果有更好的选择,我想在这里试一试。
谢谢。
发布于 2014-05-26 20:06:24
如果有三个或更多的参数可供选择,该怎么办?
尝试使用具有任意数量的值的瓦拉格斯,它要求您在调用方法/构造函数之前创建数组并将值放入数组中。
阅读来自Eclipse的关于瓦拉格斯的章节。
Java变量参数
arargs是一种帮助语法,它允许在方法调用中使用可变数量的参数。在方法定义中,可变薪酬由省略(…)表示。,在java语言规范中被称为variable arity method和variable arity parameter。在调用varargs方法时,我们可以使用由逗号指定并分隔的任意数量的参数。
Varargs样本
public class VarArgSample {
static int sum(int i, int... marks) {
int total = 0;
for (int mark : marks) {
total = total + mark;
}
return total;
}
public static void main(String[] args) {
// invoking with variable arguments
System.out.println(sum(1, 2, 3));
// same invocation using an array
int arr[] = { 2, 3 };
System.out.println(sum(1, arr));
}
}瓦拉格斯是怎么工作的?
当调用变量参数时,编译器将参数列表从左到右与形式参数匹配.一旦匹配了初始参数集,那么剩下的任何参数都会被构造为数组并传递给方法。
在给定的示例中,值‘1’作为变量‘i’的参数传递,因此除了varargs以外,没有其他参数存在。因此,其余的值‘2,3’被构造为数组并作为参数传递。这就是实现活力的方式。
解决方案
在您的示例中,可以选择拥有三个或更多的参数,然后只需使用
MyClass(int i, int j, int... k){}https://stackoverflow.com/questions/23876997
复制相似问题