それにしてもJava Genericsはクズすぎる

Map<String, String> map = null;
if (o instanceof Map) {
    map = (Map<String, String>)o;
}

と書くとuncheckedの警告が出る。現在のJavaの言語仕様でこの警告を回避するには、SuppressWarningsアノテーションを付けるしかない。

上記のキャストは実行時にチェックできないから警告を出したい気持ちはわかるが、回避策のない警告なんてだされても邪魔なだけだろ。