首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多个相似但不同的子类

多个相似但不同的子类
EN

Stack Overflow用户
提问于 2014-05-26 20:03:28
回答 1查看 66关注 0票数 1

我有两个类似的类,一个接收一个参数(让我们说int类型),另一个接收相同类型的参数两次。对于这两个输入,我需要进行相同的检查(如果数据不好,则抛出异常),这两个类都有一些功能。

我想创建具有两个构造函数的超级类型,一个有一个参数,另一个有两个参数。这将是可行的,但问题是,如果有三个或更多参数的选择,应该做些什么。

所以,如果有更好的选择,我想在这里试一试。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-26 20:06:24

如果有三个或更多的参数可供选择,该怎么办?

尝试使用具有任意数量的值的瓦拉格斯,它要求您在调用方法/构造函数之前创建数组并将值放入数组中。

阅读来自Eclipse的关于瓦拉格斯的章节。

Java变量参数

arargs是一种帮助语法,它允许在方法调用中使用可变数量的参数。在方法定义中,可变薪酬由省略(…)表示。,在java语言规范中被称为variable arity methodvariable arity parameter。在调用varargs方法时,我们可以使用由逗号指定并分隔的任意数量的参数。

Varargs样本

代码语言:javascript
复制
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’被构造为数组并作为参数传递。这就是实现活力的方式。

解决方案

在您的示例中,可以选择拥有三个或更多的参数,然后只需使用

代码语言:javascript
复制
MyClass(int i, int j, int... k){}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23876997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档