由于类型擦除,您绝对不能“推断”什么
T-它甚至在运行时不存在。您可能最接近的是检查其中的值
defValue(如果有值)并在那里获取元素的类。
Class<?> tType = defValue.get(0).getClass();if (Boolean.class.isAssignableFrom(tType)) { //...编辑
关于使用反射等的思考
getTypeArguments(),这些仅提供 声明 类型的数据, 而不 提供 实际
类型的数据。因此,例如,如果您获得了该
Method对象的句柄并调用
getTypeParameters(),则只会得到一个包含类型对象的数组,该对象表示-
T而不是
T表示某些特定运行时调用所代表的实际类型。



