gpt4 book ai didi

java - 新对象是否创建?

转载 作者:行者123 更新时间:2023-12-01 18:48:41 25 4
gpt4 key购买 nike

我正在阅读 Joshua Bloch 的Effective Java。第 1 项让我感到困惑,它指出

A second advantage of static factory method is that, unlike constructors, they are not required to create a new object each time time they're invoked.

静态工厂方法不是每次调用时都会创建一个新对象吗?

//constructor
Orange(){
}

//static factory method
static Orange staticFactoryMethod(){
return new Orange;
}

调用构造函数或 staticFactoryMethod 不会创建 Orange 的实例吗?

Orange orange=new Orange();

Orange orange=Orange.staticFactoryMethod();

最佳答案

静态工厂并不总是需要创建新对象。你可以这样:

static Orange staticFactoryMethod(){
return new Orange();
}

但是你也可以有类似的东西

static Orange staticFactoryMethod(){
Orange o = ... //find an orange in a basket of available oranges that has been already initialized
return o;
}

关于java - 新对象是否创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16620832/

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