匿名类的对象类型是什么

Jav*_*ice 3 java anonymous-class

请查看下面的Java类:

 class A {
   public void doProcess(){
      System.out.println("Process from A class!");
   }
 }
Run Code Online (Sandbox Code Playgroud)
 class B extends A {
   @Override
   public void doProcess(){
      System.out.println("Process from B class!");
   }
 }
Run Code Online (Sandbox Code Playgroud)

我有2个课程,如上所示.如果我要做以下(匿名课程)

 new B() {
   @Override
   public void doProcess(){
      System.out.println("Process from Anonymous class");
   }        
 }
Run Code Online (Sandbox Code Playgroud)

我是否在创建B的新子类?或者它是B的一个实例?

我知道我可以将匿名实现分配给B或A.我不确定是在创建的匿名类的实例上.更多关于Java所做的事情,而不是任何实际目的.我不知道如何让这个匿名内部类的类对象使用一些反射API并自己解决.

Era*_*ran 6

您正在创建一个类的匿名子类的实例B.

B b = new B() {
   @Override
   public void doProcess(){
      System.out.println("Process from Anonymous class");
   }        
}
System.out.println (b.getClass ().getSuperclass ());
Run Code Online (Sandbox Code Playgroud)

这将打印

class some.package.B
Run Code Online (Sandbox Code Playgroud)

some.packageB类所在的包在哪里.

  • 另外:`b instanceof B`将评估为`true`,但是`b.getClass().equals(B.class)`将评估为`false`. (2认同)