测试Object是否是特定类型的通用列表

时间:2014-02-11 12:45:54

标签: java generics instanceof

由于各种原因,我的方法接受通用Object参数。该方法的作用取决于实际类型,因此我做了一些实例

现在,在一个特定情况下,我需要检查类型是否为Iterable。

我发现带有泛型的instanceof不起作用。

x instanceof Iterable<Integer>

那么除了循环每个元素并测试它们的类型之外,有哪些替代方案?

1 个答案:

答案 0 :(得分:5)

如果你不能影响方法的签名或你得到的Iterable实例,那么就无法区分例如Iterable<Object>仅包含Iterable<Integer>实例中的整数。它们在各方面都是相同的;实际上,由于这个原因,“Iterable<Integer>的实例”这个概念是模糊不清的。实例是运行时工件,构造函数类型参数是编译时工件。