索纳库贝。为Java创建自定义规则
任何人都可以帮我处理这个案子 我有下一个测试文件:索纳库贝。为Java创建自定义规则,java,sonarqube,Java,Sonarqube,任何人都可以帮我处理这个案子 我有下一个测试文件: AWSCredentialsProvider provider = new EnvironmentVariableCredentialsProvider(); AmazonWebServiceClient client = new AmazonS3Client(provider); // Noncompliant 当我研究构造函数AmazonS3Client的参数时,有没有办法从变量提供程序中提取接口的特定实现?现在,我只能为此变量提取AW
AWSCredentialsProvider provider = new EnvironmentVariableCredentialsProvider();
AmazonWebServiceClient client = new AmazonS3Client(provider); // Noncompliant
当我研究构造函数AmazonS3Client的参数时,有没有办法从变量提供程序中提取接口的特定实现?现在,我只能为此变量提取AWSCredentialsProvider。因为它没有那么明确,我猜您正在尝试检索用于初始化th
提供程序
变量的实现类型,即环境变量CredientialsProvider
目前还没有简单直接的方法来实现这一点。最好的方法是按照以下步骤进行:
- 从
提供者
,使用语义API获取相应的符号标识树
- 从
符号跳转到声明树(如果标识符在另一个文件中声明,则该树将为空)提供程序
- 从
,如果树是声明
,则查找初始值设定项表达式可变树
- 从
中,获取符号类型的类型,它将为您提供实现类型表达式树
这是第一步,应该可以帮助你走得更远。当然,您接下来可能需要处理在没有初始值设定项的情况下声明变量,然后在其他地方赋值的情况。要检索这些表达式,请查看符号用法,而不是声明,然后在树上漫游。非常感谢。