【问题标题】:Why is there an error in the following java code?为什么下面的java代码有错误?
【发布时间】:2013-12-28 18:58:50
【问题描述】:

我无法弄清楚这个问题。

    public class Trying {
     public static void main(String[] args) {
         new Trying().go("hi", 1);
         new Trying().go("hi", "world", 2);
      }
     public void go(String... y, int x) {
         System.out.print(y[y.length - 1] + " ");
      }
    } 

【问题讨论】:

标签: java


【解决方案1】:

varargs 参数,如 String... y 必须是方法声明中的最后一个变量。将您的声明更改为:

public void go(int x, String... y) {

【讨论】:

  • 哦。谢谢。非常愚蠢的错误,感谢您的帮助!
【解决方案2】:

varargs 参数必须是方法声明中的最后一个变量

public class Trying {
    public static void main(String[] args) {
        new Trying().go(1,"hi");
        new Trying().go(2,"hi", "world");
    }
    public void go(int x,String... y) {
        for(int i=0;i<x;i++){
            System.out.println(y[i]);
        }
    }
} 

对于More

【讨论】:

    【解决方案3】:

    试图在 varargs 参数之后声明 Regular 参数,这是非法的。

    public void go(String... y, int x) //Error
    

    可变参数的限制:

    1. 可变参数必须最后声明

    2.varargs参数必须只有一个

    将您的方法更改为public void go(int x, String... y)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-09
      • 2014-10-22
      • 1970-01-01
      • 2015-09-13
      • 2014-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多