在代码中:
public interface ProductInterface {
public List<ProductVO> getProductPricing(ProductVO product, ProductVO prodPackage, String... pricingTypes) throws ServiceException;
}
做什么
String... pricingTypes
意思是?这是什么类型的构造?
在代码中:
public interface ProductInterface {
public List<ProductVO> getProductPricing(ProductVO product, ProductVO prodPackage, String... pricingTypes) throws ServiceException;
}
做什么
String... pricingTypes
意思是?这是什么类型的构造?
它被称为可变参数。它适用于任何类型,只要它是签名中的最后一个参数。
基本上,任意数量的参数都被放入一个数组中。这并不意味着它等同于一个数组。
一个看起来像的方法:
void foo(int bar, Socket baz...)
将有一个名为 baz 的 Socket数组(在本例中)。
因此,如果我们调用,foo(32, sSock.accept(), new Socket())
我们将找到一个包含两个 Socket 对象的数组。
调用它不起作用foo(32, mySocketArray)
,因为该类型未配置为采用数组。但是,如果签名是数组的可变参数,您可以传递一个或多个数组并获得一个二维数组。例如,可以采用多个 PrintStream 数组并将它们粘贴到单个.void bar(int bar, PrintStream[] baz...)
PrintStream[][]
奇怪的是,由于数组是对象这一事实,Object... foo
可以采用任意数量的数组。
这是一个 vararg - 变量参数。您可以根据需要多次传递该类型的值,调用者将其作为数组获取。
http://docs.oracle.com/javase/7/docs/technotes/guides/language/varargs.html