1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
class SynchronizedOnStatic<Z> { static class Inner { private static Object LCK = new Object[0]; public void foo() { synchronized (SynchronizedOnStatic.Inner.LCK) { System.out.println(); } } } class Inner2 { private Object LCK = new Object[0]; public void foo() { synchronized (this.LCK) { System.out.println(); } } } }