gpt4 book ai didi

java - 在 valueOf() 和 newInstance() 之间进行选择的标准是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 20:22:07 25 4
gpt4 key购买 nike

假设我有一个 ObjectInfo 类,其中包含对象名称和对象类型作为字符串。(我只是为了提出问题而编造一些东西。)

class ObjectInfo {
String objectName;

String objectType;

private ObjectInfo(String objectName, String objectType) {
this.objectName = objectName;
this.objectType = objectType;
}
}

如果我想提供一个静态工厂方法来创建此类的实例,以下两种方法中哪一种更好,为什么?

public static ObjectInfo newInstance(String objectName, String objectType) {
return new ObjectInfo(objectName, objectType)
}

public static ObjectInfo valueOf(String objectName, String objectType) {
return new ObjectInfo(objectName, objectType)
}

基本上,我想问的是什么时候我们应该使用 valueOf() 和什么时候使用 newInstance()?程序员社区之间是否有任何约定?

最佳答案

没有官方标准,但这是我的看法,

valueOfacquire 意味着您将获得包含相同信息的任何实例。

newInstancecreate 意味着您每次都会获得不同的实例。

get 意味着您将获得一个实例(如果它存在),或者 null 如果它不存在。

在您的情况下,newInstancecreate 是合适的。

比照

Integer.valueOf(1) == Integer.valueOf(1) // you get the same object
Integer.valueOf(-200) != Integer.valueOf(-200) // you get a different object.

关于java - 在 valueOf() 和 newInstance() 之间进行选择的标准是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11807206/

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