ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

HibernateUtilでコンパイルエラー

なんかあんまり気にしてなかったのですが、HibernateUtilがコンパイルエラーというかワーニング起こしてました。

注: C:\work\project\OR\src\or\HibernateUtil.java の操作は、未チェックまたは安全ではありません。
注: 詳細については、-Xlint:unchecked オプションを指定して再コンパイルしてください。

なんだろと思って、早速指示通り-Xlint:uncheckedを付けてコンパイルしなおしてみたところ、以下のように出ました。

C:\work\project\OR\src\or\HibernateUtil.java:42: 警告: [unchecked] raw 型 java.lang.ThreadLocal のメンバとしての set(T) への無検査呼び出しです。
            session.set(s);
C:\work\project\OR\src\or\HibernateUtil.java:51: 警告: [unchecked] raw 型 java.lang.ThreadLocal のメンバとしての set(T) への無検査呼び出しです。
        session.set(null);
警告 2 個

どうやら、JSE5で導入されたGenericsのあたりのワーニングのようです。java.lang.ThreadLocalを使うのに、

public static final ThreadLocal session = new ThreadLocal();

じゃダメで、

public static final ThreadLocal session = new ThreadLocal();

ていう風に書いて、型セーフにしなさいという警告のようです。後者にしたらワーニング出なくなりました。
振り返ってマニュアル読んでみたのですが、-Xlint:noneとか、-Xlint:-uncheckedとかやれば、ワーニング出なくなるようなことが書いてあるのですが、一向にワーニング消えないみたいです。なんでだろう?ま、いいか。。