次のコード
public class FilterState<T>{
Map<String, Object> getProperties(){return null;} // null for shorteness
}
....
public test(FilterState filterState){
Map<String, Object> map = filterState.getProperties();
}
警告を生成します
Unchecked assignment: 'java.util.Map' to 'java.util.Map<java.lang.String, java.lang.Object>
ただし、プロシージャ定義を次のように置き換えると
public <T> test(IFilterState<T> filterState)
警告が消えます。クラスジェネリックがマップの割り当てと何の関係があるのかわかりません。一般的なドキュメントをすばやく検索しても役に立ちませんでした。どこを見ればいいのか、誰か?:)