sonar扫描问题Non-null field applicationId is not initialized by new
时间: 2024-09-20 13:08:59 浏览: 65
Sonar扫描中遇到 "Non-null field applicationId is not initialized by new" 的警告通常是指你在Java代码中声明了一个非空字段 `applicationId`,但在创建新实例时没有对其进行初始化。在Java中,如果一个字段被声明为非null,那么在其被赋值之前尝试访问它将会导致编译错误或者运行时NullPointerException。
例如:
```java
public class SomeClass {
private String applicationId; // 声明为非空
public SomeClass() { // 构造函数中未给applicationId赋值
// doSomething();
}
}
```
当你试图调用 `doSomething()` 方法时,如果没有对 `applicationId` 进行初始化,Sonar就会发出这个警告,提示你应该在构造函数中明确给 `applicationId` 赋一个初始值:
```java
public SomeClass() {
this.applicationId = null; // 明确初始化为null
// 或者
this.applicationId = ""; // 如果允许空字符串,也可以这样初始化
}
```
相关问题
在Vue项目中,sonar 扫描前端 font-family: "iconfont" !important;报Unexpected missing generic font family该怎么解决
这个问题是由于 SonarQube 中含有一个名为 `Web:NoFallbackFont` 的规则,该规则要求所有字体族必须含有一个通用字体族(如 `sans-serif`、`serif`、`monospace` 等)。然而,在你的样式中,你使用的是一个非通用字体族 `iconfont`,所以会报出该错误。
为了解决这个问题,你可以将 `font-family` 属性的值修改为一个通用字体族,例如:
```css
font-family: "iconfont", sans-serif !important;
```
这样就可以避免 SonarQube 报出 `Web:NoFallbackFont` 错误了。同时,你也可以考虑将 `!important` 关键字的使用减少,因为过多使用 `!important` 可能会导致样式难以维护。
阅读全文