因此,我无法找到如何链接2个最终数组。像这样:
final String[] array1 = new String[4];
final String[] array2 = new String[4];
array1 = array2;
但由于两个阵列都是最终的,我不能做我在上面的例子中所做的事情。有没有什么方法可以将array1设置为array2,以便对array1所做的任何更改都会自动反映到array2中?
提前致谢。
答案 0 :(得分:1)
有什么方法可以将array1设置为array2,以便对array1所做的任何更改都会自动反映到array2中吗?
自动,不是。在您使用某些内容初始化<style name="BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
<item name="bottomSheetStyle">@style/bottomSheetStyleWrapper</item>
</style>
<style name="bottomSheetStyleWrapper" parent="Widget.Design.BottomSheet.Modal">
<item name="behavior_peekHeight">500dp</item>
</style>
BottomSheetDialog dialog = new BottomSheetDialog(this, R.style.BottomSheetDialog);
dialog.setContentView(R.layout.layout_bottom_sheet);
dialog.show();
和array1
后,您无法再次重新初始化它们,因为它们都是array2
。
但是,您可以手动将 final
的内容复制到array2
。
array1
这样可行,因为修改后的for (int i = 0; i < 4; i++) {
array1[i] = array2[i];
}
不能保证不变性 - 它只是确保一旦设置了对变量的引用,它就不能再改变了。
答案 1 :(得分:1)
如果我们想要在array2中反映array1的更改,那么我们不需要声明两个不同的数组。我们可以将array2的引用指向array1,它将显示更改,例如:
final String[] array1 = new String[4];
final String[] array2 = array1;