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已经在返回地址给对象之后消失,但对象可以多次使用。

Original: https://www.cnblogs.com/Tayoou/p/15257615.html
Author: Tayoou
Title: Java匿名内部类只可使用一次的理解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/593993/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球