生成日志或调试消息时,通常希望包含当前类名,如
System.out.println(“something awful happened in “+getClass());
此时,getClass调用的是this.getClass(),但静态方法中没有this,所以应该使用
new Object(){}.getClass.getEnclosingClass();
这里,new Object()会建立一个Object的匿名子类的一个匿名对象,getEnclosingClass则得到其外围类,即包含这个静态方法的类。