class Test { static class Nested { @Deprecated(forRemoval = true) class Foo { } @Deprecated(forRemoval = true) int foo; @Deprecated(forRemoval = true) void foo() {} } void bar() { Nested n = new Nested(); Nested.Foo f = n.new Foo(); int i = n.foo; n.foo(); } class NestedUsages { void bar() { Nested n = new Nested(); Nested.Foo f = n.new Foo(); int i = n.foo; n.foo(); } } } class Usages { void bar() { Test.Nested n = new Test.Nested(); Test.Nested.Foo f = n.new Foo(); int i = n.foo; n.foo(); } }