0

我遇到了如下所示的类和相应的构造函数:

public class Something{
    public static final int aConstant = 0;
    public static final int bConstant = 1;

    private final AnotherThing[] otherObjects
    private final float usefulNumber;

    public Something(float usefulNumber, AnotherThing ... otherObjects){
        this.usefulNumber = usefulNumber;
        this.otherObjects = otherObjects;
    }

    //various methods
}

当我将它放入 Eclipse 时,没有显示任何错误。我假设“...”是某种运算符,但我不确定。任何人都可以澄清这是什么,或者只是表明时间被节省的东西?(节省时间没有任何意义,因为该类只有两个属性)

4

2 回答 2

4

这些被称为可变参数。

从代码中可以看出,它们以数组的形式到达。

您可以为 传递不同数量的参数otherObjects

于 2013-08-11T23:59:36.260 回答
3

这是一个符号告诉 Java 方法或构造函数可以采用可变数量的参数。它只能在最后一个参数类型之后使用。

前面的参数...是必需的:调用者必须为每个参数指定一个表达式。但是,其余参数是可选的:调用者可以指定零、一、二、三或任意数量。这些参数将作为单个数组传递给方法或构造函数。

在您的示例中,可以使用AnotherThing调用者希望的多个实例进行调用。这是显式传递数组的语法简写:

public Something(float usefulNumber, AnotherThing[] otherObjects) ...
于 2013-08-12T00:00:49.780 回答