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 回答