为什么以下java代码中有错误?

时间:2013-12-28 18:58:51

标签: java

我无法弄清楚这个问题。

    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] + " ");
      }
    } 

3 个答案:

答案 0 :(得分:12)

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

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

答案 1 :(得分:1)

尝试在varargs参数之后声明Regular参数是非法的。

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

varags的限制:

  
      
  1. varargs必须最后宣布
  2.         

    2.必须只有一个varargs参数

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

答案 2 :(得分:1)

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