View Javadoc
1   /*
2   UnnecessaryNullCheckWithInstanceOf
3   
4   */
5   
6   package com.puppycrawl.tools.checkstyle.checks.coding.unnecessarynullcheckwithinstanceof;
7   
8   public class InputUnnecessaryNullCheckWithInstanceOfTernary {
9       public String basicTernary(Object obj) {
10          // violation below, 'Unnecessary nullity check'
11          return obj != null && obj instanceof String ? ((String) obj) : "";
12      }
13      public String validTernary(Object obj) {
14          return obj instanceof String ? ((String) obj) : "";
15      }
16      public String ternaryWithVariable(Object obj) {
17          // violation below, 'Unnecessary nullity check'
18          boolean check = obj != null && obj instanceof String;
19          return check ? ((String) obj) : "";
20      }
21      public String simpleTernaryWithExtra(Object obj, boolean flag) {
22          // violation below, 'Unnecessary nullity check'
23          return flag && obj != null && obj instanceof String ? ((String) obj) : "";
24      }
25      public int evaluateObjects(Object a, Object b) {
26          return a != null && a instanceof Integer // violation, 'Unnecessary nullity check'
27                  ? (b != null && b instanceof Double ? 100 : -100) : 0;
28                  // violation above, 'Unnecessary nullity check'
29      }
30  
31      public Object chainedTernary(Object obj) {
32          // violation below, 'Unnecessary nullity check'
33          return obj != null && obj instanceof Integer ? (Integer) obj * 2
34                  : obj != null && obj instanceof Double ? (Double) obj / 2
35                  : "Unknown";
36                  // violation 2 lines above 'Unnecessary nullity check'
37      }
38  
39      public boolean complexLogical(Object a, Object b, boolean flag) {
40          // 2 violations 3 lines below:
41          //                        'Unnecessary nullity check'
42          //                        'Unnecessary nullity check'
43          return flag && a != null && a instanceof String && (b != null && b instanceof Number);
44      }
45  
46      public int lambdaStyleCheck() {
47          java.util.function.Function<Object, Integer> func = (obj) ->
48                  // violation below, 'Unnecessary nullity check'
49                  obj != null && obj instanceof String ? ((String) obj).length() : -1;
50          return func.apply("Hello");
51      }
52  }