javac が「未チェックまたは安全でない操作を使用しています」という警告を出す原因は何ですか? 質問する

javac が「未チェックまたは安全でない操作を使用しています」という警告を出す原因は何ですか? 質問する

例えば:

javac Foo.java
Note: Foo.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

ベストアンサー1

これは、Java 5以降で、型指定子なしでコレクションを使用する場合(Arraylist()の代わりになどArrayList<String>())に発生します。つまり、コンパイラは、コレクションを型安全に使用しているかどうかを確認できません。ジェネリック

警告を回避するには、コレクションに格納するオブジェクトの種類を具体的に指定する必要があります。

List myList = new ArrayList();

使用

List<String> myList = new ArrayList<String>();

Java 7では、ジェネリックインスタンス化を短縮するために、型推論

List<String> myList = new ArrayList<>();

おすすめ記事