Java 什么是';字符串…';什么意思?

Java 什么是';字符串…';什么意思?,java,language-construct,Java,Language Construct,在守则中: public interface ProductInterface { public List<ProductVO> getProductPricing(ProductVO product, ProductVO prodPackage, String... pricingTypes) throws ServiceException; } 什么意思?这是什么类型的构造?它是一个vararg变量参数。可以根据需要多次传递该类型的值,调用者将其作为数组获取 它被称

在守则中:

public interface ProductInterface {

    public List<ProductVO> getProductPricing(ProductVO product, ProductVO prodPackage, String... pricingTypes) throws ServiceException;

}

什么意思?这是什么类型的构造?

它是一个vararg变量参数。可以根据需要多次传递该类型的值,调用者将其作为数组获取

它被称为。它适用于任何类型,只要它是签名中的最后一个参数

基本上,可以将任意数量的参数放入一个数组中。这并不意味着它等同于一个数组

一个类似于以下内容的方法:

void foo(int bar, Socket baz...)
将有一个名为baz的套接字数组(在本例中)

因此,如果我们调用
foo(32,sSock.accept(),new Socket())
我们将找到一个包含两个Socket对象的数组

将其称为
foo(32,mySocketArray)
工作,因为该类型未配置为接受数组。但是,如果签名是数组的varargs,则可以传递一个或多个数组并获得二维数组。例如,
void bar(int bar,PrintStream[]baz…
可以获取多个PrintStream数组,并将它们粘贴到单个
PrintStream[][]

奇怪的是,由于数组是对象,
Object。。。foo
可以接受任意数量的数组。

检查以了解varargs。
void foo(int bar, Socket baz...)