使用方法将组件添加到数组中,如何?

时间:2014-03-11 17:27:10

标签: java arrays swing

好吧,我试图创建一个方法,将一个字符串自动添加到一个数组但没有任何线索。

这是我到目前为止所做的:

        public static void addToArray(JTextField field , String[] strings) {

        String text = field.getText();
        strings.add(text);

}

但这不起作用,我该怎么办?

3 个答案:

答案 0 :(得分:2)

您需要传递ArrayList而不是传递常规数组,如:

public static void addToArray(JTextField field, ArrayList<String> strings) {

    String text = field.getText();
    strings.add(text);
}

答案 1 :(得分:1)

Java中的数组具有固定大小,您无法向其中添加其他项。 如果您想要动态数组,请使用List<String>代替String[]

答案 2 :(得分:0)

请参阅here,了解为什么即使使用ArrayList也无法正常工作。

简而言之,Java始终是按值传递的。困难的是可以理解Java将对象作为引用传递,并且这些引用是按值传递的。

它是这样的:

public void foo(Dog d) {
  d.getName().equals("Max"); // true
  d = new Dog("Fifi");
  d.getName().equals("Fifi"); // true
}

Dog aDog = new Dog("Max");
foo(aDog);
aDog.getName().equals("Max"); // true

在这个例子中,aDog.getName()仍将返回&#34; Max&#34;。 d不会在函数中被覆盖,因为对象引用是按值传递的。

同样地:

public void foo(Dog d) {
  d.getName().equals("Max"); // true
  d.setName("Fifi");
}

Dog aDog = new Dog("Max");
foo(aDog);
aDog.getName().equals("Fifi"); // true