List<Hoge> list = .....;
list.set(index, new Foo());

で、Foo が Hoge の下位クラスでなければコンパイルエラーになるのが
嬉しいって事では?