给定具有以下结构的类。我试图确定泛型方法的调用者分配的参数T的类型。在C#中我会使用“默认(T)”或“typeof(T)”,但我试图用Java来做到这一点。有谁知道如何/如果我可以做到这一点?我并不需要一个实例,我只需要类定义。在运行时确定通用方法参数的类型
4
A
回答
4
你不能做到这一点。你可以做的是使方法签名是这样的:
public boolean isSupportable(Class<?> type)
然后你可以使用给定的类来检查类型。
1
不能,泛型在运行时不可用。如果您有T的实例,则可以始终检查T object
是否为instanceof
的特定类的实例。
这是由于type erasure。
的另一种方法是使用Class
类作为参数(见@ ColinD的answer)
相关问题
- 1. 运行时通用类型确定
- 2. 如何确定在C/C++运行时在.NET下的方法参数类型?
- 3. 在非通用类在运行时确定泛型类型
- 4. 通过类型参数在运行时
- 5. 通用方法与运行时类型
- 6. C# - 在泛型方法使用运行时定义的类型作为参数
- 7. 使用在运行时确定的类型参数调用泛型函数
- 8. 在运行时确定一个通用类的类型
- 9. 在运行时指定通用委托类型参数
- 10. Jython:确定Java方法在运行时需要的参数数
- 11. 在运行时确定对象类型的最佳方法
- 12. 在运行时确定的泛型类型调用非泛型方法c#
- 13. 在运行时设置通用类的类型和参数
- 14. CIFilter在运行时确定inputKey参数类型
- 15. 功能参数类型在运行时确定?
- 16. Java通用方法在运行时转换为参数类型,有可能吗?
- 17. 通用类型的运行方法
- 18. 运行时类型参数
- 19. 创建运行时确定类型实例的最佳方法
- 20. 在运行时供应方法类型参数化中的结构类型?
- 21. 在运行时确定协议类型
- 22. 通用类型作为方法参数
- 23. Java通用方法类型参数
- 24. 通用方法 - 参数类型铸造
- 25. 通用类型作为方法参数
- 26. 在运行时创建的类型参数的泛型类型
- 27. 运行时间确定C的类型
- 28. 使用参数安全调用多次调用通用方法(运行时返回类型)的最佳方法
- 29. 使用运行时类型的泛型类型的方法
- 30. 运行时类型VS编译时类型的方法调用