// JDK 8
// package test;

import java.lang.reflect.Modifier;

public class Main {
    public static void main(String[] args) throws Exception {
        Class anon = new Main() {}.getClass();

        System.out.println("Name:" + anon.getName()); // Main$1
        System.out.println("Anonymous:" + anon.isAnonymousClass()); // true
        System.out.println("Package:" + anon.getPackage()); // null

        System.out.println("public ? " + Modifier.isPublic(anon.getModifiers())); // false
        System.out.println("private ? " + Modifier.isPrivate(anon.getModifiers())); // false
        System.out.println("protected ? " + Modifier.isProtected(anon.getModifiers())); // false

        assert anon.newInstance() instanceof Main;
        assert Class.forName(anon.getName()).newInstance() instanceof Main;
    }
}