(这有点是我
previous question的后续行动)
我有一个Foo<?>对象,foo. FOO< T>是一个界面.
如何获取隐藏在<?>后面的类型值?
注意,这不是微不足道的,因为foo可以是例如Bar< String>类的对象,其中Bar< T>实现Foo< T>或实现接口FloatFoo的一些anonyomus类,其中FloatFoo扩展Foo< Float>.我需要一个适用于所有情况的解决方案.
提前致谢 :)
解决方法
使用反射是不可能的,因为Java Generics存在
Type Erasure的问题.在运行时,已经删除了为泛型类Foo定义的类型,因此在该类上使用反射将不会产生其泛型类型.此类型信息仅用于编译类型安全性.
C#没有这个问题,可以访问类的模板化类型.
This是差异的概述.