你好呀,我是仨仨!
今天在整理项目的时候,注意到这样一个变量:
SonarLint 提示需要用 static 修饰,于是我顺手就在 final 后加了一个static,然而等 SonarLint 再次检查后,又出现了新的提示:
我一拍脑门,Java 修饰符还有规范吗,好像一时间想不起来,不过我们可以点开 SonarLint 给出的提示,提示文本如下:
翻译过来就是:
Java语言规范建议按以下顺序列出修饰符:
- Annotations
- public
- protected
- private
- abstract
- static
- final
- transient
- volatile
- synchronized
- native
- default
- strictfp
不遵循这种惯例不会对技术产生影响,但会降低代码的可读性,因为大多数开发人员都习惯了标准顺序。
不兼容的代码示例:
static public void main(String[] args) { // Noncompliant
}
兼容的代码示例:
public static void main(String[] args) { // Compliant
}
简单来说,遵守修饰符的排列规范有助于提高代码的可读性和可维护性,在团队中,成员可能有不同的编码风格偏好。但为了保持一致性,最好制定并遵循一套共同的规范。
最后,我按照规则修改修饰符排列顺序,成功的没有提示出现!