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

7kjnsjlb  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(391)

我试图创建一个方法,自动将字符串添加到数组中,但没有任何线索。
到目前为止,我掌握的情况如下:

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

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

}

但这样不行,我该怎么办?

e5nszbig

e5nszbig1#

你需要通过考试 ArrayList 而不是像这样传递正则数组:

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

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

6qfn3psc2#

java中的数组是固定大小的,不能向其中添加其他项。如果需要动态数组,请使用 List<String> 而不是 String[]

iq0todco

iq0todco3#

请参阅此处了解为什么即使使用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()仍将返回“max”。当对象引用通过值传递时,函数中的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

相关问题