我需要实现一个具有与此类似的方法的 Java 接口(interface):
boolean canWrite(Type t);
就我而言,它应该返回 true
如果类型是List<URI>
.
我想做类似 return t.equals(URI_LIST_TYPE)
的事情,但我不知道如何获取 Type 的实例代表List<URI>
.
有什么好的方法吗?
最佳答案
您需要一个类型 token ,例如the one in Guava像这样使用
new TypeToken<List<String>>() {}
这是有效的,因为(匿名)子类在运行时保留有关类型参数的信息,然后可由反射库检查。
作为侧节点,在设计处理反射的 API 时,不要使用 Class<E>
如果参数化类型可以发挥作用,则作为输入参数
关于java - 检查 Type 实例是否等于泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35769612/