请问像Kernel kernel = new Kernel(){}这样当场初始化类的写法叫什么?
关于
Kernel kernel = new Kernel() {};写法的名称解释 嘿,这就给你解惑!这种写法叫做匿名内部类,是Java里很实用的一种语法特性。
简单来说,它的逻辑是:你在创建Kernel类(或者接口)的实例时,直接在new后面定义了一个没有名字的子类(如果Kernel是类)或者接口实现类(如果Kernel是接口),然后直接用这个匿名类创建了对象。
举个更具体的例子,要是Kernel是个带抽象方法的类,你可以在大括号里重写方法:
Kernel kernel = new Kernel() { @Override public void someAbstractMethod() { // 自定义实现逻辑 } };
就算像你那样大括号留空也完全合法,只要符合语法要求就行。
这种写法一般用在只需要使用一次这个类实例的场景,不用专门去定义一个有名字的子类/实现类,能让代码更简洁,比如在事件监听、临时线程创建这类场景里特别常见。
内容的提问来源于stack exchange,提问作者dan dan
相关产品推荐
相关产品推荐

