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

Ste*_*ote 0 java generics instanceof

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

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

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

x instanceof Iterable<Integer>
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*nik 5

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