在测试新规则时,我注意到有一个错误。我的规则是检查方法参数和返回类型,并检查这些值所有者是否具有特定注释。
以前,我在方法参数中获取数组以及获取该数组的元素类型时遇到问题。但后来我找到了解决方案:
if (parameterType.isArray()) {
Type.ArrayType arrayType = (Type.ArrayType) parameterType;
Type arrayElementType = arrayType.elementType();
...
但目前我还有另一个问题。我的规则发现列表作为返回值。我试图找到类似于 Type.ArrayType 的东西,但没有成功。
有没有办法获取List元素类型?
最佳答案
简短回答:不,没有。参数化类型不作为语义 API 的一部分提供。
我们已经考虑在某个时候提供此服务:https://jira.sonarsource.com/browse/SONARJAVA-1871
但截至今天还没有明确的计划。
关于java - 自定义 SonarQube 规则 - 获取列表元素类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53077439/