1

私はこのコードを持っていますが、これが悪い習慣と見なされるかどうかを知りたいです:

Class<T> type = null;
if (type.isInstance(TypeA.class)) {
    for (Object obj : typeAList) {
        TypeA mytype = (TypeA) obj;
        System.out.println(mytype.getMyId());
    }
}    

typeAList は実際にはパラメーターですList<T> typeAList

ここに悪いマークはありますか?これはもっとうまくできるでしょうか?

4

1 に答える 1

4

もしそうなら、なぜあなたtypeAListList<T>このように繰り返さなかったのですか:

for(T obj : typeAList) {
    System.out.println(obj.getMyId());
}

Tメソッドが定義されている既知のクラス/インターフェースを拡張するように定義されている場合getMyId()。さもないと:

for(T obj : typeAList) {
    if (obj instanceof TypeA) {
        System.out.println(((TypeA)obj).getMyId());
    }
}
于 2013-06-26T22:38:34.627 に答える