gpt4 book ai didi

java - new Object { } 做什么?

转载 作者:行者123 更新时间:2023-11-29 10:06:07 24 4
gpt4 key购买 nike

很难搜索这方面的信息,因为我不知道它叫什么,所以我猜这是我的第一个问题。

是否使用这种表示法:

new Object() {//code here}

创建一个 Object 类型的新对象还是创建一个作为 object 子类的新对象?如果它是一个子类,你能把你可以用来声明一个类的所有东西(成员变量、函数、内部类)放在大括号里吗?你能为它写一个构造函数吗?

最佳答案

这称为 anonymous class .基本上,您是在就地定义一个子类。

这个调用:

Object a = new Object() {
// stuff
};

.. 定义一个新的 Object 子类,其中包含 //stuff(就像在普通的 A extends Object 中声明它一样。

维基百科有 a good article about them也是。

它们主要用于闭包,这意味着在您的匿名类中定义的函数可以访问封闭范围内的 final 变量。

示例:

interface Function {
void run();
}

static void example(Function f) {
f.run();
}

void runExample() {
final int a = 10;
example(new Function() {
void run() {
// Notice that "a" was defined in the outer scope
System.out.println(a);
}
});
}

关于java - new Object { } 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7735745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com