import java.util.function.IntFunction; public class LocalClass { void test(int x, T t) { InnerClass h = new InnerClass<>(1, x); IntFunction> ic = a -> new InnerClass<>(a, x); System.out.println(new InnerClass(1, x) { void test() {} }); h.run(t); } private static class InnerClass { private final int x; InnerClass(int a, int x) { this.x = x; System.out.println("hi"+x); } InnerClass(String a, int x) { this.x = x; System.out.println("hi"+x); } static { System.out.println("hello"); } void run(T t) { System.out.println(x); System.out.println(InnerClass.class); var xHello = new InnerClass(3, x); System.out.println(xHello); xHello.run(t); } } }