美文网首页java
java匿名内部类:java new一个新的类后面接{}有什么用

java匿名内部类:java new一个新的类后面接{}有什么用

作者: 小竹子爱广播 | 来源:发表于2016-12-14 20:54 被阅读41次

问:放
像下面这段代码,ThreadLocal在初始化的时候后面接了一个方法,我在自己的代码中也试了一下,可以再大括号中定义变量定义方法,但是外部是不能调用的,我想知道这样写除了初始化还有什么用途和意义呢?

private static ThreadLocal<Integer> seqNum = new ThreadLocal<Integer>(){
public Integer initialValue(){
return 0;
}
};

答:1:这个叫匿名内部类
2:通过这种写法创建了一个ThreadLocal没有名字的子类。这个子类中覆盖了ThreadLocal的原有的initialValue方法,同时也创建了这个子类的一个实例。
它的作用跟
class OutterClass {

private static class MyThreadLocal extends ThreadLocal<Integer> {  
    public Integer initialValue(){      
        return 0;      
    }     
}  

private static MyThreadLocal seqNum = new MyThreadLocal();  

}

等价,好处是你不用专门为这个子类(MyThreadLocal)想一个名字,代码量也少一点

3: 匿名内部类不能被引用,因为这个类的名字都没有,怎么引用呢?!

相关文章

  • java匿名内部类:java new一个新的类后面接{}有什么用

    问:放像下面这段代码,ThreadLocal在初始化的时候后面接了一个方法,我在自己的代码中也试了一下,可以再大括...

  • Java内部类

    Java内部类,简单来说就是将一个类定义在另一个类或者方法里面,主要分为成员内部类,局部内部类,匿名内部类和静态内...

  • 热修复原理拆解个人笔记(一)

    源于sophix文档: 内部类/外部类java编译器对内部类的处理 匿名内部类匿名内部类 类加载类加载时间 fin...

  • Kotlin匿名内部类

    在java中创建匿名内部类,只需要把这个类直接new 出来,下面以一个interface给为例子,如下 publi...

  • java内部匿名类

    前言:java基础的编写类的时候,会觉得很匿名内部类很神秘.普通的java文件会被编译成class,那内部类和匿名...

  • 顶级类,嵌套类、成员类、局部类、匿名类

    Java 内部类、成员类、局部类、匿名类等_a327369238的专栏-CSDN博客[https://blog.c...

  • kotlin匿名内部类

    在java中创建匿名内部类,只需要把这个类直接new 出来,下面以一个interface给为例子,如下 在kotl...

  • 错题集

    Java String 的replaceAll方法,第一个参数是正则。 匿名内部类的写法为:new base() ...

  • 获取Java匿名内部类持有的外部类对象

    熟悉Java的应该都知道,Java匿名内部类会隐式持有一个外部类对象。所以在匿名内部类里可以调用外部类各个方法。 ...

  • 16. 对象声明与伴生对象

    匿名内部类 匿名内部类主要是针对那些获取抽象类或者接口对象而来的。最常见的匿名内部类点击事件: 上面这个是Java...

网友评论

    本文标题:java匿名内部类:java new一个新的类后面接{}有什么用

    本文链接:https://www.haomeiwen.com/subject/kwfwmttx.html