同时调用构造函数定义动态数组 - Java

时间:2013-12-10 15:02:40

标签: java arrays constructor

使用此示例:

public class ExampleData {

  private List<String> directories;
  private String exampleString;


  public ExampleData (String[] directories, String exampleString) {
    this.directories = new ArrayList<String>(Arrays.<String> asList(directories));
    this.exampleString= exampleString;
  }
}

调用构造函数:

public class Test{

  private String[] directories={"/tmp/17","/tmp/18"};
  private ExampleData eD = 
        new ExampleData(directories, "Test");
}

为什么我可以使用前面的代码而不是下一个代码调用其构造函数:

public class Test{

  private ExampleData eD = 
        new ExampleData({"/tmp/17","/tmp/18"}, "Test");
}

2 个答案:

答案 0 :(得分:0)

因为,您需要首先创建/ tmp / 17和/ tmp / 18,而不是将它们放入列表或其他内容。他们的构造函数需要单独调用。

而且,idk你用什么语言编码但是({“/ tmp / 17”,“/ tmp / 18”},.....)这似乎是错误的。我的意思是用括号括起来...

答案 1 :(得分:0)

Java只是不接受这种语法。你可以写

private ExampleData eD = 
    new ExampleData(new String[]{"/tmp/17", "/tmp/18"}, "Test");