您好我有一个StringBuilder的2D数组,我用它来绘制游戏板,有没有办法让它的一部分(StringBuilder在已知位置的一部分)不可更改? 提前致谢
答案 0 :(得分:4)
简短的回答是" no",在Java中无法做到这一点。您必须将数组封装在另一个类中,然后实现代码以使该数组的某些部分不可更改。
答案 1 :(得分:2)
您是说您的数据类型是StringBuilder[][]
?具体是你想要做什么不可变的?那个2D数组中的整行?还是单个StringBuilder条目?如果你能提供更多的细节,我猜你可能有更好的方法来完成你想要做的事情。
代替额外信息,我会尽力回答您发布的问题。
默认情况下,数组是可变的,你可以做的不多。即使Java中的final
关键字也不能保证对象的内容不会发生变化;它只能保证不会在其位置创建新对象。
如果使用第三方库是一个选项,您可以查看Google Guava中的一些ImmutableCollection类型:https://code.google.com/p/guava-libraries/wiki/ImmutableCollectionsExplained,但我不完全确定您是什么'问。