Java构造函数和静态方法

什么时候应该使用构造函数,什么时候应该使用静态方法?

您能用小片段解释一下吗?我略读了一些线程,但是我仍然不清楚。

回答:

当您只想返回该类型的新对象并且希望简单时,请使用公共构造函数。

一个很好的例子是StringBuilder,因为它是可变的,您可能每次都想要一个新对象。

public String toString() {

StringBuilder sb = new StringBuilder();

// append fields to the sb

return sb.toString();

}

当您可能想重用对象(尤其是不可变的对象),返回子类或描述结构时,请使用静态因子方法。一个很好的例子是EnumSet,它具有许多静态工厂,即使有些工厂具有相同的参数,它们也会做不同的事情。

EnumSet.noneOf(RetentionPolicy.class);

// has the same arguments, but is not the same as

EnumSet.allOf(RetentionPolicy.class);

在这种情况下,使用静态工厂可以清楚地知道这两种构造集的区别。

而且EnumSet可以返回两种不同的实现,一种针对具有少量值(<=

64)的枚举进行优化,RegularEnumSet而另一种则针对称为JumboEnumSet

以上是 Java构造函数和静态方法 的全部内容, 来源链接: utcz.com/qa/400883.html

回到顶部