Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对于未知数量的参数,如何格式化字符串[]{a,b,c,…n}之类的数组?_Java_Arrays - Fatal编程技术网

Java 对于未知数量的参数,如何格式化字符串[]{a,b,c,…n}之类的数组?

Java 对于未知数量的参数,如何格式化字符串[]{a,b,c,…n}之类的数组?,java,arrays,Java,Arrays,如何将未知数量的参数传递给字符串数组。 简单地说,我需要一个概括: private String[] contactsFirstNameData = new String[] { "Emerson", "Lake", "Palmer" }; 所以我可以这样或类似地表达: LinkedList<String> l = new LinkedList<>(); l.add("Emerson"); l.add("Lake"); l.add("Palmer"); p

如何将未知数量的参数传递给字符串数组。 简单地说,我需要一个概括:

private String[] contactsFirstNameData = new String[] {
      "Emerson", "Lake", "Palmer"
};

所以我可以这样或类似地表达:

LinkedList<String> l = new LinkedList<>();
l.add("Emerson"); l.add("Lake"); l.add("Palmer");
private String[] contactsFirstNameData = new String[] {
    //Some function to pass l's elements
}
LinkedList l=新建LinkedList();
l、 添加(“爱默生”);l、 添加(“湖泊”);l、 添加(“帕尔默”);
私有字符串[]联系人FirstNameData=新字符串[]{
//传递l元素的函数
}

如果您的字段是静态最终,则可以在静态块中对其进行初始化:-

private static final String[] contactsFirstNameData;

static {
    LinkedList<String> l = new LinkedList<>();
    l.add("Emerson");
    l.add("Lake");
    l.add("Palmer");
    contactsFirstNameData = l.toArray(String[]::new);
}

如果您的字段是静态最终,则可以在静态块中对其进行初始化:-

private static final String[] contactsFirstNameData;

static {
    LinkedList<String> l = new LinkedList<>();
    l.add("Emerson");
    l.add("Lake");
    l.add("Palmer");
    contactsFirstNameData = l.toArray(String[]::new);
}

这将很棘手,如图所示,因为
contactsFirstNameData
是静态数据,因此在
l
之前定义,后者是实例数据。@dave
LinkedList l=new LinkedList()也是静态的:P@CommonMan我认为
l
需要一个
静态的
限定符才能是静态的,不是吗?@dave是的,但它仍然不能解决OP的问题。dave,它们是不同的,但“等效”的代码片段。。。这就是我的意思。很抱歉给你带来了困惑。不过,观察结果不错。如图所示,这将是一个棘手的问题,因为
contactsFirstNameData
是静态数据,并且(因此)在
l
之前定义,后者是实例数据。@dave
LinkedList l=new LinkedList()也是静态的:P@CommonMan我认为
l
需要一个
静态的
限定符才能是静态的,不是吗?@dave是的,但它仍然不能解决OP的问题。dave,它们是不同的,但“等效”的代码片段。。。这就是我的意思。很抱歉给你带来了困惑。不过,观察得不错。你的更新版本比以前干净多了。可惜我已经“浪费”了我的一票;)@疯狂物理学家谢谢你,你将有机会对我未来的答案进行投票:)谢谢@Kartik,这就是我想要的@鲁克。这个答案的第一次编辑几乎没有这么精雕细琢。我已经删除了过时的评论。您的更新版本比以前的版本更干净。可惜我已经“浪费”了我的一票;)@疯狂物理学家谢谢你,你将有机会对我未来的答案进行投票:)谢谢@Kartik,这就是我想要的@鲁克。这个答案的第一次编辑几乎没有这么精雕细琢。我已经删除了我过时的评论。
private final String[] contactsFirstNameData;

public MyClass() {
    LinkedList<String> l = new LinkedList<>();
    l.add("Emerson");
    l.add("Lake");
    l.add("Palmer");
    contactsFirstNameData = l.toArray(String[]::new);
}