解决方法
三种选择:
public static void doSomething() { foo(Baz.class); } private static class Baz extends Bar { // Override a method }
public static void doSomething() { class Baz extends Bar { // Override a method } foo(Baz.class); }
在这样的方法中声明一个类是非常不寻常的,请注意.
>您可以使用匿名内部类,但然后调用getClass():
public static void doSomething() { foo(new Bar() { // Override a method }.getClass()); }
最后一个选项创建一个匿名内部类的实例,只是为了获得Class对象,这当然不太理想.
就个人而言,我可能会选择第一个选项.