【问题标题】:private void function(Integer[] a, String str = "") like in PHP [duplicate]类似于 PHP 中的私有 void 函数(整数 [] a,字符串 str =“”)[重复]
【发布时间】:2012-08-26 09:07:26
【问题描述】:

可能重复:
Does Java support default parameter values?

有没有可能做这样的事情

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

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

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

【问题讨论】:

    标签: java php


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      没错,除了:

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

      【讨论】:

        【解决方案3】:

        除了使用variable length method argument list之外,这确实是实现这一目标的唯一方法。

        示例:

        private void function(Integer[] a, String... str) {
        
          for( String s : str )
          {
            System.out.println("String: " + s);
          }
        }
        

        【讨论】:

          【解决方案4】:

          与这篇文章类似:

          Does Java support default parameter values?

          Java 不处理此功能。

          【讨论】:

            【解决方案5】:

            var agrs声明你的方法

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

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

            【讨论】:

              猜你喜欢
              • 2021-06-29
              • 1970-01-01
              • 2017-11-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-05-01
              • 2017-12-23
              • 1970-01-01
              相关资源
              最近更新 更多