6

可能重复:
Java 是否支持默认参数值?

有没有可能做这样的事情

private void function(Integer[] a, String str = "")

就像在 PHP 中一样。如果我不提供 str,它将是空的。在 PHP 中它是可能的,在 JAVA 中它给了我错误。或者这里唯一的解决方案是创建两个这样的方法?

private void function(Integer[] a, String str)
private void function(Integer[] a)
4

5 回答 5

4

确切地说,除了:

private void function(Integer[] a, String str) {
    // ...
}

private void function(Integer[] a) {
    function(a, "");
}
于 2012-08-31T14:16:16.540 回答
1

声明你的方法var agrs

private void function(Integer[] a, String... s)

请记住,var args 应该始终是方法的最后一个参数。

于 2012-08-31T14:19:03.433 回答
0

是的,您必须使用第二种方法。

private void function(Integer[] a, String str)
private void function(Integer[] a)
于 2012-08-31T14:16:09.510 回答
0

这确实是实现这一目标的唯一方法,没有使用可变长度方法参数列表

例子:

private void function(Integer[] a, String... str) {

  for( String s : str )
  {
    System.out.println("String: " + s);
  }
}
于 2012-08-31T14:16:20.827 回答
0

类似于这篇文章:

Java 是否支持默认参数值?

Java 不处理此功能。

于 2012-08-31T14:16:58.573 回答