我试图创建一个方法,自动将字符串添加到数组中,但没有任何线索。到目前为止,我掌握的情况如下:
public static void addToArray(JTextField field , String[] strings) { String text = field.getText(); strings.add(text); }
但这样不行,我该怎么办?
e5nszbig1#
你需要通过考试 ArrayList 而不是像这样传递正则数组:
ArrayList
public static void addToArray(JTextField field, ArrayList<String> strings) { String text = field.getText(); strings.add(text); }
6qfn3psc2#
java中的数组是固定大小的,不能向其中添加其他项。如果需要动态数组,请使用 List<String> 而不是 String[]
List<String>
String[]
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
3条答案
按热度按时间e5nszbig1#
你需要通过考试
ArrayList
而不是像这样传递正则数组:6qfn3psc2#
java中的数组是固定大小的,不能向其中添加其他项。如果需要动态数组,请使用
List<String>
而不是String[]
iq0todco3#
请参阅此处了解为什么即使使用arraylist也不起作用。
简而言之,java总是按值传递的。很难理解java将对象作为引用传递,而这些引用是通过值传递的。
它是这样的:
在本例中,adog.getname()仍将返回“max”。当对象引用通过值传递时,函数中的d不会被覆盖。
同样地: