变量声明的sonar检查

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cc_whale/article/details/79695973
public class CaptchaCommonServlet {
 public static Random random=new Random(); //随机数对象
}

sonar的检查:
共有类的属性不应该有public修饰的属性,违背的封装原则,并且有三个主要的缺点:
1. 例如检查这样的额外行为不能添加上去
2. 内部状态被暴露
3. 成员的值可能在任何地方被修改,可能不按程序员设想的方式进行。

public class MyClass{
 public static final int SOME_CONSTANT = 0;//可以的,因为final变量不能修改
 public String firstName; //不可以,要修改为private变量用get和set修改内容
}
 public  final static char[] CHARS={'2','3','4','5','6','7','8','9',
            'A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z',
            'a','b','c','d','e','f','g','h','i','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z'};

sonar检查:
声明的顺序是:
Annotations public protected private abstract static final transient volatile synchronized native strictp

修改之后还是提醒我要把共有的改成私有的。
那一些常量类是如何用的。。。

一种常量的方式是:
类,里面的属性都是public static final的,并且都有相应的初始化。
接口,里面的属性可以不显式声明是public static final 类型的

sonar没有检查public static final String 类型的属性

private static final char[] CHARS = {'2', '3', '4'} ;//没检查
public static final String CONST = "CONST"; //检查了

猜你喜欢

转载自blog.csdn.net/cc_whale/article/details/79695973