今天在公司和前辈讨论了一个代码规范的问题,是关于静态变量的,浅浅地记录一下讨论的结果。

静态变量问题小记
问题描述
对于工具类等含有静态变量的类,其赋值方式最好用那种。
方案有两种:
- 使用
Class.property = value
直接进行赋值
- 使用get、set方法进行值的修改(等同使用Lombok)。
验证代码
验证代码贴一下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
public class Class1 { public static boolean flag = false;
public boolean getFlag(){ return flag; }
public void setFlag(boolean flag) { Class1.flag = flag; }
public static void main(String[] args) { Test1 test1 = new Test1(); Test2 test2 = new Test2();
test1.run(); test2.run(); }
} class Test1{ public void run(){ Class1.flag = true; Class1 class1 = new Class1(); System.out.println("test1-Class1.flag==" + Class1.flag); System.out.println("test1- class1.getFlag()==" + class1.getFlag()); System.out.println("test1-Class1.flag == class1.getFlag()==" + Class1.flag == class1.getFlag() + ""); } } class Test2{ public void run(){ Class1 class1 = new Class1(); Class1 class2 = new Class1(); class1.setFlag(true); class2.setFlag(false); System.out.println("test2-class1.getFlag()==" + class1.getFlag()); System.out.println("test2-class2.getFlag()==" + class2.getFlag()); System.out.println("test2-class2.getFlag() == class2.getFlag()==" + class2.getFlag() == class2.getFlag()+""); System.out.println("test2-Class1.flag == class1.getFlag()==" + Class1.flag == class1.getFlag() + ""); } }
|
结果展示
| test1-Class1.flag==true test1- class1.getFlag()==true false test2-class1.getFlag()==false test2-class2.getFlag()==false false false
Process finished with exit code 0
|
具体原因待整理