众所周知,Java中存在默认的可见性修饰符。据我所知,这个修饰符可以像其他修饰符一样使用。但是为什么SonarQube将默认修饰符标记为漏洞 - 明确声明“var”的可见性?
看看the rule的描述。
如果未明确声明成员变量的可见性,则可能导致其具有您不期望的可见性,并可能使其对其他类的意外修改保持开放。
如果您具有类包私有属性,则同一包中的任何类都可以修改此属性。
但Package private仍然有效。例如,您可能希望将一个类声明为包private,以便可以在声明它的包内使用它,但仍然不会公开使用。