Java匿名内部类只可使用一次的理解

匿名内部类只能使用一次,就不能在使用。

为了验证“只能使用一次"的实际含义,首先在程序中实例化了两个对象。并且在相应的类中加入了实现接口的匿名内部类:

package com.Anonymouse;

public class AnonymousInnerClass {
    public static void main(String[] args) {
        Outer04 outer04 = new Outer04();
        outer04.method();
        Outer04 outer01 = new Outer04();
        outer01.method();
    }
}

interface IA {
    void cry();
}

class Outer04 {
    private int n1 = 10;
    public void method() {
        IA tiger = new IA() {
            @Override
            public void cry() {
                System.out.println("小老虎嗷嗷嗷....");
            }
        };
        tiger.cry();
        System.out.println(tiger);
    }
}

最终得到的结果为:

小老虎嗷嗷嗷....
com.Anonymouse.Outer04$1@43a25848
小老虎嗷嗷嗷....
com.Anonymouse.Outer04$1@3ac3fd8b

由此可见:匿名内部类的两次底层创建的类名相同,都为Outer04$1,但是hashCode发生了变化,在Java中,hashCode能一定程度上反应出地址信息。之前创建的Outer04$1已经在返回地址给对象之后消失,但对象可以多次使用。

posted @ 2021-08-26 15:54  Tayoou  阅读(279)  评论(0编辑  收藏  举报