gpt4 book ai didi

JavaPoet 检查 TypeName 是否是 List 的实例

转载 作者:行者123 更新时间:2023-11-30 06:02:43 26 4
gpt4 key购买 nike

在 JavaPoet 中,我可以从每个类中获取 TypeName,如下所示,作为 List 的示例类。

TypeName TYPE_LIST = ClassName.get(List.class);

但是我现在如何检查给定的TypeName是一个列表的实例吗?假设我有一个返回 List<String> 的方法。我可以使用以下方法获取返回类型:

TypeName returnTyoe = TypeName.get(method.getReturnType());

如何检查该方法是否返回 List ?我不在乎它是否是List<String>我只想知道它是否至少是 List并完全忽略通用参数。

最佳答案

找到了更好的方法。对于每个也为此苦苦挣扎的人,请使用以下代码:

TypeName TYPE_LIST = ClassName.get(List.class);
boolean isList = isFromType(type, TYPE_LIST)

public static boolean isFromType(TypeName requestType, TypeName expectedType) {
if(requestType instanceof ParameterizedTypeName) {
TypeName typeName = ((ParameterizedTypeName) requestType).rawType;
return (typeName.equals(expectedType));
}

return false;
}

关于JavaPoet 检查 TypeName 是否是 List 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51955875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com