1 回答
TA贡献1900条经验 获得超5个赞
Java 是一种传值语言。对象类型变量不是对象指针,它们只是保存一个对象引用(即内存地址)。例子:
String str = "Hello"; // A String type variable holding reference of "Hello" string
String str2 = str; // Variable "str2" now copies the reference of "str"
String str2 = "World"; // Variable "str2" changes the reference it holds to the string "World" (in other word, it is being replaced)
它经常被混淆,因为以下是有效的:
List<String> foo = new ArrayList<>(); // Let foo hold the reference of an empty arraylist
List<String> bar = foo; // Let bar hold the reference that is held by foo
bar.add("hello");
System.out.println(foo); // Prints "[hello]"
这是有效的,因为bar已经复制了ArrayListfrom的对象引用foo,因此对ArrayListvia 的任何操作bar都将由 反映foo,因为它们都持有相同的对象引用。
回到你的问题。如果tacController尚未加载 FXML 文件,则所有Button引用都将为null. 所以你要做的是复制null引用并将这些null引用保存在数组中。因此,您将永远无法访问实际Button对象。
添加回答
举报