好吧,我试图创建一个方法,将一个字符串自动添加到一个数组但没有任何线索。
这是我到目前为止所做的:
public static void addToArray(JTextField field , String[] strings) {
String text = field.getText();
strings.add(text);
}
但这不起作用,我该怎么办?
答案 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