我可以让阵列的一部分最终/不可更改吗?

时间:2015-01-18 22:00:26

标签: java

您好我有一个StringBuilder的2D数组,我用它来绘制游戏板,有没有办法让它的一部分(StringBuilder在已知位置的一部分)不可更改? 提前致谢

2 个答案:

答案 0 :(得分:4)

简短的回答是" no",在Java中无法做到这一点。您必须将数组封装在另一个类中,然后实现代码以使该数组的某些部分不可更改。

答案 1 :(得分:2)

您是说您的数据类型是StringBuilder[][]?具体是你想要做什么不可变的?那个2D数组中的整行?还是单个StringBuilder条目?如果你能提供更多的细节,我猜你可能有更好的方法来完成你想要做的事情。

代替额外信息,我会尽力回答您发布的问题。

默认情况下,数组是可变的,你可以做的不多。即使Java中的final关键字也不能保证对象的内容不会发生变化;它只能保证不会在其位置创建新对象。

如果使用第三方库是一个选项,您可以查看Google Guava中的一些ImmutableCollection类型:https://code.google.com/p/guava-libraries/wiki/ImmutableCollectionsExplained,但我不完全确定您是什么'问。