Arrays.asList()はなぜ削除できないのですか?

深刻な記事を書く、行うのは難しい共有します。

ウェブサイト:yasinshaw.com

公開番号:XY技術円

数日前、使用は、Arrays.asListの方法が問題に遭遇したとき:

1.png

そして私は、このメソッドのソースはうんのArrayListを返すことが判明したされたものを、どのように私は削除操作にそれをサポートしていませんでした見に行きましたか?

2.png

その後、慎重にこれだけのことを見つけるために、ソースコードを読んでArrayList、私たちが通常使用しているものではありませんjava.utilプライベートな内部クラス内のパッケージでのArrayListを、しかし配列クラス。この内部クラスは継承しますAbstractListが、削除または複製し、他の方法を追加しません。したがって、このクラスの配列を用いて設計されて不変その長さは、互換性があります。

Arrays.asListの方法は、()、簡潔なコードのリストを取得するために使用されている理由。ユニットテストを書くときに、これは非常に一般的な要件です。

Javaの9の後、あなたは使用することList.of()は、Arrays.asList()メソッドの代わりにメソッドを。しかし、その内部にも不変のリストを返されます。

3.png

しかし、ここで注意することは、両方のは、まだいくつかの他の地区であるということです。例えば、は、Arrays.asList()メソッドは、一覧することができる戻りset操作が、List.of()がなくてもよいです。

あなたはこの単純さを利用したいが、また、フォローアップの要素を追加したり削除したりすることができるようにしたい場合は、どのように私はそれを行う必要がありますか?あなたはこのようなメソッドを記述することができます。

4.png

この種のものは、もちろん、すでに私たちはそれを支援するためのオープンソースのライブラリを持っています!Googleのグアバは、リストクラスを提供しています、いくつかのnewArrayList方法があります。

5.png

Googleのグアバライブラリは、あなたが理解しようとするために使用することができ、便利なツールの数を提供します。

さらに記事、歓迎国民の関心番号:XY技術円

おすすめ

転載: juejin.im/post/5d48b8296fb9a06b130f0b11