Boz*_*zho 10
varargs在Java 5中引入.
例如:
public String join(String... parts);
Run Code Online (Sandbox Code Playgroud)
这实际上是一个快捷方式:
public String join(String[] parts);
Run Code Online (Sandbox Code Playgroud)
该parts参数在方法中用作数组,但可以在不构造数组的情况下调用该方法(如obj.join(new String[] {part1, part2, part3}))
但是要非常小心,因为可能会产生歧义.例如:
public void write(String author, String... words);
public void write(String... words);
Run Code Online (Sandbox Code Playgroud)
如果要调用哪种方法obj.write("Mike", "jumps")?编译器足够聪明,可以检测出歧义,但是我遇到过一些编译器没有发现这些问题的情况(不能完全回忆)
当物体属于相同类型或至少具有相同的功能目标时,使用varargs是实用的.如果你想要不同的论点.例如:
public String publishBook(String title, [String author],
[String isbn], [boolean hardcover]); // [..] would mean optional
Run Code Online (Sandbox Code Playgroud)
那么你需要重载你的方法
| 归档时间: |
|
| 查看次数: |
6952 次 |
| 最近记录: |