美文网首页
匿名内部类的创建方法

匿名内部类的创建方法

作者: 0x70e8 | 来源:发表于2018-05-10 15:10 被阅读0次
一般匿名内部类的创建方式

以创建线程为例

new Thread(new Runnable() {

            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + " run");

            }
        }).start();

new Thread() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + " run");
            }
        }.start();

使用两个大括号的方式
new Thread() {

            {
                start();
            }

            @Override
            public void run() {
                System.out.println("heo");
            }
        };

这也能执行start,看一下为什么:
反编译:

class DoubleBrace$1 extends Thread
{

    public void run()
    {
        System.out.println("heo");
    }

    DoubleBrace$1()
    {
        start();
    }
}

发现另外一个大括号内容是在构造器里面执行的。不过在构造器里面启动线程不安全,不推荐这样创建。
可以像下面创建HashMap:

new HashMap<String, Object>() {

            private static final long serialVersionUID = 1L;

            {
                put("pluginName", 1);
            }
        };

相关文章

  • java学习笔记(十三)内部类

    1、概述 内部类即在类的内部在创建一个类 分为成员内部类(直接在类中创建) 局部内部类(在成员方法中创建) 匿名内...

  • 内部类

    成员内部类 局部内部类(定义在方法内和定义在作用域内的类) 匿名内部类

  • 每日一点(1)

    匿名类 内部类 匿名内部类 匿名类(可以是接口 抽象类 普通类):1:无需创建对象2:直接重写方法 内部类:若一...

  • Java 内部类

    内部类包括成员内部类、方法内部类、*静态内部类、匿名内部类*。 内部类的作用 由于内部类的实现和外部类没有关系,内...

  • Java 内部类、静态内部类、方法内部类(未完待续)

    内部类 什么是内部类?内部类其实就是在一个类中创建的类。内部类有四种: 成员内部类 静态内部类 局部内部类 匿名内...

  • 为什么内部类中访问局部变量,局部变量需要final修饰

    java内部类 原因是:因为局部变量和匿名内部类的生命周期不同。 匿名内部类是创建后是存储在堆中的 而方法中的局部...

  • “方法引用” 学习笔记

    开发环境 eclipse 4.7.3a jdk 9 前言 通常使用lambda表达式来创建匿名方法(或匿名内部类)...

  • Kotlin中的object和companion object关

    一. object 1. object 表达式 可以创建匿名内部类 通过object 创建的匿名内部类可以继承父类...

  • 匿名内部类的创建方法

    一般匿名内部类的创建方式 以创建线程为例 或 使用两个大括号的方式 这也能执行start,看一下为什么:反编译: ...

  • java 内部类

    一般有四种内部类的使用方式: 嵌套的内部类 方法内的内部类 静态内部类 匿名内部类 什么时候用内部类: 有时候明显...

网友评论

      本文标题:匿名内部类的创建方法

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