如何解决声纳问题 - 重复的代码块?

Har*_*ara 1 java spring json-deserialization spring-boot sonarqube

对于两个不同的 ReST API,我得到了存在公共字段的不同响应。

我正在创建两个不同的 bean 进行反序列化。两种 Bean 都有共同的字段。反序列化工作正常,但声纳提出了公共字段存在重复代码块的问题。

Adh*_*ias 7

我能想到有3种方法可以解决这个问题。

  1. 您可以创建一个父 bean 并向其提取公共属性,然后从新创建的父 bean 扩展这 2 个 bean,这样就不会出现代码重复。

  2. 您可以从声纳中排除豆子 - 因为豆子就是豆子,您不必真正担心对它们进行声纳分析,但对豆子进行声纳分析仍然可能是好的,这取决于您的目的想做。您可以在此处找到有关如何执行此操作的详细信息:SonarQube 排除目录

  3. 您可以更改字段的顺序——这是一件愚蠢的事情,但我以前这样做只是为了解决声纳问题。

例如,如果两个文件都有

int a;
int b;
int c;
int d;
Run Code Online (Sandbox Code Playgroud)

将其更改为

int a;
int c;
int b;
int d;
Run Code Online (Sandbox Code Playgroud)

这会欺骗声纳库