编译正常:-
public class Demo {
public static void main(String... args) {
}
}
但这没有被编译。
public class Demo {
public static void main(String... args) {
String... strVarArgs ;
//here i initiallize strVarArgs by some logic, like we do for arrays
}
}
如果我的语法错误,请纠正我。 :-)
cletus 写道:- 它实际上只是数组的语法糖
下面是一个示例,后面是来自一本非常流行的 java 书籍的声明,作者是 Kathy Sierra 和 Bert Bates(Head First Java,第二版,McGraw-Hill/Osborne):-
主题泛型,
<T extends MyClass>
,其中 MyClass 是一个类,并且
<T extends MyInterface>
,其中 MyInterface 是一个接口(interface)。
以下是从书中复制的内容(第 548 页,第 16 章):-
在泛型中,“扩展”意味着“扩展或实现”??? java 工程师必须为您提供一种对参数化类型施加约束的方法,以便您可以将其限制为。但您还需要限制类型以仅允许实现特定接口(interface)的类。因此,在这种情况下,我们需要一种语法来同时适用于继承和实现这两种情况。换句话说,这对于扩展和实现都有效。 获胜词是……延伸。 每当 Sun 工程师有机会重用现有关键字时,就像他们在此处使用“extends”所做的那样,他们通常会这样做。但有时他们没有选择......(断言,枚举)。
我的问题:var-args 是否只是数组的语法糖,除了数组之外没有其他功能???
最佳答案
是的,可变参数仅适用于函数参数。
它实际上只是数组的语法糖,所以而不是:
String... strVarArgs ;
你想要
String strVarArgs[];
关于java - var-args 只能用作方法参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1514422/