我有一堆Java bean对象。
目标有:
ObservableList<Objective>.
目标有:
ObservableList<Strategy>.
策略有:
ObservableList<Tactic>.
TACTIC有:
ObservableList<Task>.
我的程序允许用户进入多个级别,添加,编辑或删除上述任何上述项目。如果用户选择某个目标,他们可以定义并添加目标。等等一直到战术。
问题是,如何确保上述级别中的最低级别更改仍然存在?假设您想要将目标添加到目标1.我是否会传入目标1的ObservableList?在“定义目标1的新目标”屏幕中,我可以向此ObservableList添加新的Goal()。但是,Java总是按值(而不是引用)传递,不是吗?当我关闭并重新打开目标记录屏幕时,目标的目标列表将被清除并且不再存在。
如何确保更改会说明?
答案 0 :(得分:0)
Java通过引用传递基本类型(int,char)和对象。因此,您可以修改传递给方法的对象,并且更改将保持不变。
示例:
public class ByReference {
static class Foo {
public int i = 0;
}
static void changeFoo(Foo fooParam) {
fooParam.i = 1;
}
public static void main(String args[]) {
Foo foo = new Foo();
System.out.println(foo.i); // prints 0
changeFoo(foo); // pass foo to method by reference
System.out.println(foo.i); // prints 1 -- change persist
}
}
有一篇很好的文章解释说:http://www.javaworld.com/article/2077424/learn-java/does-java-pass-by-reference-or-pass-by-value.html