实例化 Spring 组件时如何避免 SonarLint UnusedPrivateMethod?
How to avoid SonarLint UnusedPrivateMethod when instantiating Spring components?
在基本的 Spring 启动应用程序中,我有这个组件:
@Component
public class TheComponent {
public String getKey() {return "value";}
}
被服务使用。如果我这样设计我的服务:
@Service
public class TheService {
@Autowired
private TheComponent theComponent;
private final String keyValue = theComponent.getKey();
private TheService() {}
}
然后 Spring 无法构建引导,因为 theComponent
触发 NullPointerException
。
如果我这样设计:
@Service
public class TheService {
private String keyValue;
private TheService(TheComponent theComponent) {
keyValue = theComponent.getKey();
}
}
然后 SonarLint 告诉我应该 删除这个未使用的私有 "TheService" 构造函数 .
是否有使用私有构造函数同时适用于 Spring 和 SonarLint 的解决方案?
用以下方式注释您的构造函数:
@SuppressWarnings("unused")
您也可以在 class 级别使用它来抑制所有警告。
在基本的 Spring 启动应用程序中,我有这个组件:
@Component
public class TheComponent {
public String getKey() {return "value";}
}
被服务使用。如果我这样设计我的服务:
@Service
public class TheService {
@Autowired
private TheComponent theComponent;
private final String keyValue = theComponent.getKey();
private TheService() {}
}
然后 Spring 无法构建引导,因为 theComponent
触发 NullPointerException
。
如果我这样设计:
@Service
public class TheService {
private String keyValue;
private TheService(TheComponent theComponent) {
keyValue = theComponent.getKey();
}
}
然后 SonarLint 告诉我应该 删除这个未使用的私有 "TheService" 构造函数 .
是否有使用私有构造函数同时适用于 Spring 和 SonarLint 的解决方案?
用以下方式注释您的构造函数:
@SuppressWarnings("unused")
您也可以在 class 级别使用它来抑制所有警告。