View Javadoc
1   /*
2   FinalLocalVariable
3   validateEnhancedForLoopVariable = (default)false
4   tokens = (default)VARIABLE_DEF
5   
6   
7   */
8   
9   package com.puppycrawl.tools.checkstyle.checks.coding.finallocalvariable;
10  
11  public class InputFinalLocalVariableFive {
12      class class5 {
13          public void test1(){
14              final boolean b = false;
15              int shouldBeFinal; // violation, "Variable 'shouldBeFinal' should be declared final"
16              if(b){
17                  if(b){
18                      shouldBeFinal = 1;
19                  } else {
20                      shouldBeFinal = 2;
21                  }
22              }
23          }
24          public void test2() {
25              final int b = 10;
26              int shouldBeFinal; // violation, "Variable 'shouldBeFinal' should be declared final"
27  
28              switch (b) {
29                  case 0:
30                      switch (b) {
31                          case 0:
32                              shouldBeFinal = 1;
33                              break;
34                          default:
35                              shouldBeFinal = 2;
36                              break;
37                      }
38                      break;
39                  default:
40                      shouldBeFinal = 3;
41                      break;
42              }
43          }
44          public void test3() {
45              int x;    //No Violation
46              try {
47                  x = 0;
48                  try {
49                      x = 0;
50                  } catch (final Exception e) {
51                      x = 1;
52                  }
53              } catch (final Exception e) {
54                  x = 1;
55              }
56          }
57          public void test4() {
58              int shouldBeFinal; // violation, "Variable 'shouldBeFinal' should be declared final"
59              class Bar {
60                  void bar () {
61                      // violation below "Variable 'shouldBeFinal' should be declared final"
62                      int shouldBeFinal;
63                      final boolean b = false;
64                      if (b) {
65                          if (b) {
66                              shouldBeFinal = 1;
67                          } else {
68                              shouldBeFinal = 2;
69                          }
70                      } else {
71                          shouldBeFinal = 2;
72                      }
73                  }
74              }
75  
76              abstract class Bar2 {
77                  abstract void method(String param);
78              }
79          }
80  
81          public void test5() {
82              // violation below "Variable 'table' should be declared final"
83              InputFinalLocalVariableFive table = new InputFinalLocalVariableFive();
84              new Runnable() {
85                  @Override
86                  public void run() {
87                      InputFinalLocalVariableFive table = null;
88                      table = new InputFinalLocalVariableFive();
89                  }
90              };
91          }
92  
93          public void test6() {
94              byte tmpByte[];
95  
96              if (true) {
97                  if (true) {
98                      tmpByte = new byte[0];
99                  }
100             } else {
101                 if (true) {
102                     if (true) {
103                         tmpByte = new byte[1];
104                     }
105                 }
106                 if (false) {
107                     if (true) {
108                         tmpByte = new byte[2];
109                     }
110                 }
111             }
112         }
113     }
114 
115 }