JavaのListの宣言方法色々

JavaのListの宣言方法色々

Listの宣言方法をいくつか書きます。

最近よく見るのがArraysクラスを使用した宣言でしょうか。

これはデメリットがあって固定長のlist変数になってしまいます。

続けて

などとすると、UnsupportedOperationExceptionが発生します。

回避するには

としたら回避できたりもします。

インスタンスイニシャライザ

この書き方は組込の人が書いていて初めて知ったのですがインスタンスイニシャライザという記述方法です。

これに対してスタティックイニシャライザっていうのもありますがListのようなコレクションクラスはインスタンスイニシャライザを使用します。

java.util.Collections

CollectionsクラスのaddAllメソッドで初期化します。

これくらいしか知りませんが十分だと思います。

インスタンスイニシャライザ内での例外

インスタンスイニシャライザ内で例外を発生させてみました。

import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
@SuppressWarnings("serial")
List<String> list = new ArrayList<String>() {
{
get(2); // IndexOutOfBoundsExceptionが発生する
add("test1");
add("test2");
add("test3");
}
};
}
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

普通にエラーとなりますが、スタティックイニシャライザの場合は、ExceptionInitializeErrorが発生します。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA