1
2
3
4
5
6
7
8
9
10
11
12 package com.puppycrawl.tools.checkstyle.grammar.java8;
13
14 import static java.lang.annotation.ElementType.TYPE_USE;
15
16 import java.lang.annotation.Retention;
17 import java.lang.annotation.RetentionPolicy;
18 import java.lang.annotation.Target;
19
20
21 public final class InputAnnotationsOnArray {
22
23 private String array1 @Nullable [];
24 private @Nullable int array2 @Nullable [] @Nullable [];
25
26 private InputAnnotationsOnArray() {
27 }
28
29 public static <T> T[] checkNotNullContents(T @Nullable [] array) {
30 if (array == null) {
31 throw new NullPointerException();
32 }
33
34 return array;
35 }
36
37 public static <T> T[][] checkNotNullContents2(T @Nullable [] @Nullable [] array) {
38 if (array == null) {
39 throw new NullPointerException();
40 }
41
42 return array;
43 }
44
45 public static <T> T @Nullable [] checkNotNullContents3(T array @Nullable []) {
46 if (array == null) {
47 throw new NullPointerException();
48 }
49
50 return array;
51 }
52
53 public <T> T checkNotNullContents4(T @Nullable [] array) @Nullable [] {
54 if (array == null) {
55 throw new NullPointerException();
56 }
57 String tmp1 @Nullable [];
58 @Nullable Object[] tmp2 = new @Nullable Integer[3];
59 @Nullable int[] tmp3 = new @Nullable int[3];
60 @Nullable Object tmp4 = new @Nullable String @Nullable [3] @Nullable [2];
61 @Nullable Object tmp5 = new @Nullable int @Nullable [3] @Nullable [2];
62
63 return array;
64 }
65 }
66
67 @Retention(RetentionPolicy.CLASS)
68 @Target({ TYPE_USE })
69 @interface Nullable {
70 }