繁体   English   中英

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

[英]How to get all types of the inner structures of a nested type?

我有一个功能波纹管,

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< java.util.List<>>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();
}

并不断重复,直到它不是ParameterizedType

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM