1

目前我有两个列表

private List<Department> subdepts = new LinkedList<Department>();
private List<Employee> employees = new LinkedList<Employee>();

在运行时,我将它们作为对象获取,但我需要知道何时看到List<Department>

我逃脱了以下代码。

// o is an Object
if(o instanceof List){
    List l = (List)o;
    if(l.size() > 0){
    if(l.get(0) instanceof Department){

但是如果列表为空,我该怎么办?我怎么知道它是否是一个List<Department>

4

1 回答 1

1

泛型参数类型在运行时被删除,这意味着您无法确定列表声明的泛型类型。这称为泛型类型擦除

如果您知道列表只包含一种类型的对象,您可以简单地检查列表中的任何对象是否是您的特定类的实例,但这是一个不清楚的解决方法。

于 2013-05-31T06:32:29.980 回答