「java ClassのTはどんな意味ですか???」

Yahoo 知恵袋への質問(ベストアンサーに選ばれた回答) 


帰り支度をしていると(こっちは前日だけど、もう夜の7時を回っている。。。)、なんとあのSeaserひがやすお(はてな blog)さんから「トラックバック」があった。

clazzパラメータの型をClass<?>にするとキャストする必要はありません。


Java Generics は、Collection の「要素」のタイプを明示して、コーディング段階で「変なモノ」が混ざらないように(混ざる所で「コンパイルエラー」!)するためのものといったベーシックな「理解」だけで、Eclipseが警告を出していても、Hibernateの.list()がGenerics でない List を返しているコト(Hibernate Criteria API)を口実に、Eclipseが「黄色い」警告を出していても Java1.4 のやり方をゴリ押ししている感があった。


同僚のロンというプログラミング歴30年のエキスパートプログラマーは(彼はホントにスゴいプログラマーだ!)最近、この「警告」を抹消すべくアノテーションを使って、

    @SuppressWarnings("unchecked")
    public Set getOutcomes() {
        return outcomes;
    }

と書き始めていた。。。


ひょっとして、

   List<?> results = criteria.list();

あるいは

    public Set<?> getOutcomes() {
        return outcomes;
    }

とすればいいだけのコトだったのだろうか???