GenericTypeResolver.resolveTypeArguments returns null



我有以下代码:

List strings = new ArrayList<String>();
strings.add("string");
System.out.println(GenericTypeResolver.resolveTypeArguments(String.class, strings.getClass()));

它打印null

我无法理解此方法签名。

我想检查strings是否用String参数化。

如何正确使用resolveTypeArguments

P.S

我的例子只是个傻瓜。

第2页

我知道spring可以用Convertor接口

做这样的事情

此实用程序用于查找具体化的类型参数。在这种情况下,这意味着信息必须在类本身中可用。

第一个参数是您试图解析的类型的类。第二个参数是第一个类实现的超类或接口,它具有泛型类型参数。

以下是Integer(实现Comparable<Integer>)的一个示例:

Class[] typeParams = GenericTypeResolver.resolveTypeArguments(
                            Integer.class, Comparable.class);
//typeParams would be [Integer.class] 

在您的示例中,strings的类型参数未被具体化(它已被擦除),因此该实用程序将返回null,即使您要修复如何调用它(将是resolveTypeArguments(strings.getClass(), Collection.class)

相关内容

  • 没有找到相关文章

最新更新