Java の世界ではプリミティブな配列が存在している。 プリミティブな配列は速度が List などと比べると圧倒的に速いのでついつい使いたくなる。 しかし、Java 言語では immutable な配列を作ることができないので、内部で配列を保持している場合、それをそのまま返却することはできない。 つまり、以下のようなクラスはよくない。Foo(o).getO() で取得された配列を操作すると、Foo を作成した時点で作成された o を変更してしまうからだ。 public class Foo { private final Object[] o; public Foo(Object[] o) { this.o = o; } public Object[] getO() { return this.o; } } よって、汎用的なライブラリでは以下のようにしたほうがベター。 public clas