在定义动态数组的同时调用构造函数-Java
使用此示例:在定义动态数组的同时调用构造函数-Java,java,arrays,constructor,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>
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");
}
为什么我可以用前面的代码而不是下一个代码调用它的构造函数:
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");
}
因为,首先需要创建/tmp/17和/tmp/18,然后才能将它们放入列表或其他任何内容中。它们的构造函数需要单独调用
此外,idk使用什么语言编写代码,但({/tmp/17“,“/tmp/18”},…)这似乎是错误的。我的意思是大括号中的曲线大括号…Java就是不接受这种语法。你可以改为写作
private ExampleData eD =
new ExampleData(new String[]{"/tmp/17", "/tmp/18"}, "Test");
谢谢你的回答。