0
由于各种原因,我的方法接受通用Object
参数。什么方法取决于实际类型,所以我做一些实例测试对象是否是特定类型的通用列表
现在,在一个特定的情况下,我需要检查是否类型是Iterable。
我发现使用泛型的instanceof不起作用。
x instanceof Iterable<Integer>
那么除了循环遍历每个元素并测试它们的类型之外,还有哪些选择?
由于各种原因,我的方法接受通用Object
参数。什么方法取决于实际类型,所以我做一些实例测试对象是否是特定类型的通用列表
现在,在一个特定的情况下,我需要检查是否类型是Iterable。
我发现使用泛型的instanceof不起作用。
x instanceof Iterable<Integer>
那么除了循环遍历每个元素并测试它们的类型之外,还有哪些选择?
如果您不能影响您的方法的签名或您获得的Iterable实例的签名,则无法区分例如Iterable<Object>
仅包含来自Iterable<Integer>
的实例的整数。他们在各方面都是一样的;实际上,“Iterable<Integer>
的实例”这个概念由于这个原因是模糊的。实例是运行时工件,构造函数类型参数是编译时工件。