Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java syntax like Object(){}

Class clazz = new Object(){}.getClass();

Why is this possible and what would it mean? Could someone please remind me?

For example:

public class Testing {
    public static void main(String[] args) {
        Class clazz = new Object(){}.getClass();
        System.out.println(clazz);
    }
}

The result is: class Testing$1

like image 369
ses Avatar asked Dec 09 '25 06:12

ses


1 Answers

new Object(){} creates an anonymous inner class, as a subclass of Object. It is an inner class of Testing, thus it gets a compiler generated name like the one you saw.

like image 188
Péter Török Avatar answered Dec 11 '25 19:12

Péter Török



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!