如何将匿名类(不是实例)作为参数传递给期望Java类型为Class的方法

Nit*_*hya 3 java parameters methods anonymous class

我必须调用一个带Class参数的方法:

public action(Class<? extends SomeInterface> classVariable);
Run Code Online (Sandbox Code Playgroud)

我能够做到这一点:

action(new SomeInterface() { 
    // implement interface
  }.getClass());
Run Code Online (Sandbox Code Playgroud)

但是,如果没有实例化对象并调用它,我可以逃脱getClass()吗?

Pét*_*rök 5

如何在没有实例的情况下访问匿名类?您需要一个名称以某种方式引用它,根据定义它没有(确定它将在运行时具有一些编译器生成的名称,但要查询您需要首先创建它,并且您无法在不实例化的情况下创建它它).

所以没有办法实现你想要的.

  • 不,接收类的方法将调用getInstance来实例化SomeInterface类型的对象,并将调用接口定义的方法.因此,没有名称本身不应该阻止实例化.或者我可能完全错了. (3认同)