繁体   English   中英

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

[英]Why is there an error in the following java code?

我无法弄清楚这个问题。

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

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

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

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

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

限制变量:

  1. varargs必须最后声明

2.必须只有一个varargs参数

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

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

更多

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM