假设我有一个ObjectInfo类,其中包含对象名称和对象类型为String。(为了提出问题,我只是在做一些事情。)

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()?程序员社区之间是否有任何约定?

-安 git

最佳答案

 public static ObjectInfo newObjectInfo(String objectName, String objectType)

对于静态工厂方法,我将使用上述命名约定。如果方法使用者要使用静态导入,这将很有用:
import static foo.ObjectInfo.newObjectInfo;
//....
ObjectInfo info = newObjectInfo(foo, bar);

您可以看到此模式in the Guava API

09-15 14:08