由于各种原因,我的方法接受通用Object
参数。该方法的作用取决于实际类型,因此我做了一些实例
现在,在一个特定情况下,我需要检查类型是否为Iterable。
我发现带有泛型的instanceof不起作用。
x instanceof Iterable<Integer>
那么除了循环每个元素并测试它们的类型之外,有哪些替代方案?
答案 0 :(得分:5)
如果你不能影响方法的签名或你得到的Iterable实例,那么就无法区分例如Iterable<Object>
仅包含Iterable<Integer>
实例中的整数。它们在各方面都是相同的;实际上,由于这个原因,“Iterable<Integer>
的实例”这个概念是模糊不清的。实例是运行时工件,构造函数类型参数是编译时工件。