View Javadoc
1   /*
2   UnusedLocalVariable
3   allowUnnamedVariables = false
4   
5   */
6   
7   package com.puppycrawl.tools.checkstyle.checks.coding.unusedlocalvariable;
8   
9   import java.util.function.Supplier;
10  
11  public class InputUnusedLocalVariableLambdaExpression {
12      private final LambdaTest<String> myComponent = LambdaTest.lazy(() -> {
13          String foo = "";
14          String hoo = ""; // violation, 'Unused local variable'
15          new Runnable() {
16              String hoo = "";
17              @Override
18              public void run() {
19                  String j = hoo; // violation, 'Unused local variable'
20                  String ja = foo;
21                  ja += "asd";
22              }
23          };
24          return "";
25      });
26  
27      final LambdaTest<String> nestedLambdas = LambdaTest.lazy(() -> {
28          String foo = "", hoo = "";
29          String hoo2 = ""; // violation, 'Unused local variable'
30          String hoo3 = ""; // violation, 'Unused local variable'
31          // violation below, 'Unused local variable'
32          final LambdaTest<String> myComponent = LambdaTest.lazy(() -> {
33              // violation below, 'Unused local variable'
34              final LambdaTest<String> myComponent3 = LambdaTest.lazy(() -> {
35                  new Runnable() {
36                      String hoo2 = "";
37  
38                      @Override
39                      public void run() {
40                          String j = hoo; // violation, 'Unused local variable'
41                          String ja = foo;
42                          ja += hoo2;
43                      }
44                  };
45                  return "";
46              });
47              new Runnable() {
48                  String hoo3 = "";
49  
50                  @Override
51                  public void run() {
52                      String j = hoo3; // violation, 'Unused local variable'
53                      String ja = foo;
54                      ja += "asd";
55                  }
56              };
57              return "";
58          });
59          new Runnable() {
60              String hoo2 = "";
61  
62              @Override
63              public void run() {
64                  String j = hoo2;
65                  String ja = foo; // violation, 'Unused local variable'
66                  j += hoo2;
67              }
68          };
69          return "";
70      });
71  
72      final LambdaTest<String> nestedLambdas2 = LambdaTest.lazy(() -> {
73          String k = ""; // violation, 'Unused local variable'
74          final LambdaTest<String> nestedLambdas = LambdaTest.lazy(() -> {
75              new LambdaTest<String>() {
76                  void foo() {
77                      String j = k;
78                      j += "asd";
79                  }
80              };
81              return "";
82          });
83          return nestedLambdas.toString();
84      });
85  }
86  
87  class LambdaTest<T> {
88      String k = "";
89      public static <T> LambdaTest<T> lazy(Supplier<T> supplier) {
90          return new LambdaTest<>();
91      }
92  }