// JDK 8
// package test;
import java.lang.reflect.Modifier;
public class Main {
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;
}
}
Ly8gSkRLIDgKLy8gcGFja2FnZSB0ZXN0OwoKaW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lk1vZGlmaWVyOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIEV4Y2VwdGlvbiB7CiAgICAgICAgQ2xhc3MgYW5vbiA9IG5ldyBNYWluKCkge30uZ2V0Q2xhc3MoKTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJOYW1lOiIgKyBhbm9uLmdldE5hbWUoKSk7IC8vIE1haW4kMQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQW5vbnltb3VzOiIgKyBhbm9uLmlzQW5vbnltb3VzQ2xhc3MoKSk7IC8vIHRydWUKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlBhY2thZ2U6IiArIGFub24uZ2V0UGFja2FnZSgpKTsgLy8gbnVsbAoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oInB1YmxpYyA/ICIgKyBNb2RpZmllci5pc1B1YmxpYyhhbm9uLmdldE1vZGlmaWVycygpKSk7IC8vIGZhbHNlCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwcml2YXRlID8gIiArIE1vZGlmaWVyLmlzUHJpdmF0ZShhbm9uLmdldE1vZGlmaWVycygpKSk7IC8vIGZhbHNlCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJwcm90ZWN0ZWQgPyAiICsgTW9kaWZpZXIuaXNQcm90ZWN0ZWQoYW5vbi5nZXRNb2RpZmllcnMoKSkpOyAvLyBmYWxzZQoKICAgICAgICBhc3NlcnQgYW5vbi5uZXdJbnN0YW5jZSgpIGluc3RhbmNlb2YgTWFpbjsKICAgICAgICBhc3NlcnQgQ2xhc3MuZm9yTmFtZShhbm9uLmdldE5hbWUoKSkubmV3SW5zdGFuY2UoKSBpbnN0YW5jZW9mIE1haW47CiAgICB9Cn0=