import org.jetbrains.annotations.Nullable; import java.util.*; class A { private final List<String> field1 = new ArrayList<String>(); final List<String> field2 = new ArrayList<String>(); public final int field3 = 0; protected final int field4 = 0; private List<String> field5 = new ArrayList<String>(); List<String> field6 = new ArrayList<String>(); private int field7 = 0; int field8 = 0; @Nullable private String field9 = "a" @Nullable private String field10 = foo(); String foo() { return "x"; } void bar() { field5 = new ArrayList<String>(); field7++; field8++; field9 = null; field10 = null; } interface I private I anonymous = new I() { }; public I anonymous2 = new I() { }; private I anonymous3 = new I() { }; private I iimpl = anonymous; void testAnonymousObject(Object i) { if (true) { iimpl = (I) i; } else if (true) { anonymous3 = (I) i; } I anonymousLocal1 = new I() { }; I anonymousLocal2 = new I() { }; I iimpl = anonymousLocal1; if (true) { anonymousLocal2 = (I) i; } } }