diff options
Diffstat (limited to 'plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java')
-rw-r--r-- | plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java new file mode 100644 index 000000000000..4641642c09c5 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/memory/anonymous_inner_class_may_be_static/AnonymousInnerClassMayBeStatic.java @@ -0,0 +1,93 @@ +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +public class AnonymousInnerClassMayBeStatic { + + public void foo() + { + final Runnable runnable = new <warning descr="Anonymous class 'Runnable' may be a named 'static' inner class">Runnable</warning>(){ + public void run() { + } + }; + runnable.run(); + new A() {}; + new <warning descr="Anonymous class 'B' may be a named 'static' inner class">B</warning>() {}; + new <error descr="Cannot resolve symbol 'C'">C</error>() {}; + String localVar = ""; + new <warning descr="Anonymous class 'B' may be a named 'static' inner class">B</warning> () { + void f() { + System.out.println(localVar); + } + }; + } + + class A {} + static class B {} + + void m() { + class C { + } + new B() { + void bla() { + C b; // reference to local class + } + }; + new <warning descr="Anonymous class 'B' may be a named 'static' inner class">B</warning>() { + void bla() { + AnonymousInnerClassMayBeStatic.n(); + } + }; + } + + static void n() {} + + class D { + {new E().m();} + class E { + private void m() {} + } + } + + class CC {} + static class BB<T> { + void m() { + new <warning descr="Anonymous class 'BB<CC>' may be a named 'static' inner class">BB<CC></warning>() { + class Z {} + }; + } + } + + String t = ""; + + void m(int p) { + String s = null; + new <warning descr="Anonymous class 'Object' may be a named 'static' inner class">Object</warning>() { + private int a = 1; + void f() { + System.out.println(a); + System.out.println(p); + System.out.println(s); + this.g(); + } + + private void g() {} + }; + } + + void sort(List<String> list) { + Collections.sort(list, new <warning descr="Anonymous class 'Comparator<String>' may be a named 'static' inner class">Comparator<String></warning>() { + @Override + public int compare(String o1, String o2) { + return o1.toString().compareToIgnoreCase(o2.toString()); + } + }); + } +} +class One { + class Two { + void foo() { + new Object() {}; + } + } +}
\ No newline at end of file |