class X { static X m() { return new X() {}; } public static void main(String[] args) throws InstantiationException, IllegalAccessException { X x = m(); X y = m(); X z = x.getClass().newInstance(); if (x.getClass() == y.getClass()) System.out.println("yes"); if (x.getClass() == z.getClass()) System.out.println("yes"); } }