如何获取嵌套类型内部结构的所有类型?

2024-05-08

我有一个函数如下,

public void park( List<List< List< Integer>>> l){ System.out.println("park"); }

当我尝试使用 Method.getParameters() + Parameter.getParameterizedType() 时,我得到了

 java.util.List< java.util.List<java.util.List<java.lang.Integer>>>>

但是,我需要获取嵌套结构内侧的类型,例如,java.util.List> and Integer。当我得到它时,我使用 getAnnotationsByType 来获取内部结构的所有注释。

我曾想过使用 Parameter.getParameterizedType().toString() 来解析嵌套结构,但即使我这样做,我也不认为类型字符串可以转换为 Type。

是否可以获取嵌套结构的内部类型?任何事情都会受到赞赏。


您可以通过以下方式获取此信息ParameterizedType界面。

例如:

final Type parameterType = method.getGenericParameterTypes()[0]; // List<List<List<Integer>>>

if (parameterType instancof ParameterizedType) {
    final Type nextDown // List<List<Integer>>
        = ((ParameterizedType) parameterType).getActualTypeArguments();
}

并不断重复直到not a ParameterizedType.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取嵌套类型内部结构的所有类型? 的相关文章

随机推荐