When should I use a constructor and when should I use static method?

Can you explain above with small snippet? I skimmed through a few threads but I'm still not clear with this.

解决方案

Use a public constructor when you only ever want to return a new object that type and you want simplicity.

A good example is StringBuilder as it's mutable and you are likely to want a new object each time.

public String toString() {

StringBuilder sb = new StringBuilder();

// append fields to the sb

return sb.toString();

}

Use a static factor method when you might want to re-use objects (esp if immutable), you might want to return a sub-class or you want descriptice construction. A good example is EnumSet which has a number of static factories which do different things even though some have the same arguments.

EnumSet.noneOf(RetentionPolicy.class);

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

EnumSet.allOf(RetentionPolicy.class);

In this case, using a static factory makes it clear what the difference between these two ways of construction the set.

Also EnumSet can return two different implementations, one optimised for enums with a small number of values (<= 64) RegularEnumSet and another for many values called JumboEnumSet

java 静态方法 构造方法,Java构造函数和静态方法相关推荐

  1. 第32节:Java中-构造函数,静态方法,继承,封装,多态,包

    构造函数实例 class Cat{// 设置私有的属性 name private String name;// 设置name的方法public void setName(String Name) {t ...

  2. 为什么静态方法在Java中不能是抽象的

    本文翻译自:Why can't static methods be abstract in Java The question is in Java why can't I define an abs ...

  3. java heap space 解决方法_Java静态方法/变量,非静态方法/变量的区别,今天一并帮你解决

    静态/非静态 方法/变量的写法 大家应该都明白静态方法/字段比普通方法/字段的写法要多一个static关键字,简单写下他们的写法吧,了解的可以直接略过 class Test{ // 静态变量 publ ...

  4. java 静态方法 实例方法的区别_java 静态方法和实例方法的区别

    静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方 ...

  5. java 静态方法_80后程序员,教你学Java核心技术:用户自定义类+静态域静态方法

    用户自定义类 在第3章中,已经开始编写了一些简单的类.但是,那些类都只有一个简单的main方法.现在让我们开始学习如何设计复杂应用程序所需要的各种"主力类"(workhorse c ...

  6. java静态方法的调用方法_Java静态方法和实例方法

    一:静态方法 其实在我们第一天学习java的时候就使用了静态方法,主方法的就是一个静态方法,静态方法和静态属性一样使用static修饰. DEMO:定义静态方法 发现了可以使用"类名.方法名 ...

  7. java 静态变量方法,java中的静态变量和静态方法

    java中的静态变量和静态方法 发布时间:2020-06-25 20:15:28 来源:亿速云 阅读:100 作者:Leah 今天就跟大家聊聊有关java中的静态变量和静态方法,可能很多人都不太了解, ...

  8. Java中的静态变量、静态方法问题

    由关键字static所定义的变量与方法,分别称为静态变量和静态方法,它们又都被称为静态成员 1.静态方法 无需本类的对象也可以调用此方法,调用形式为"类名.方法名",静态方法常常为 ...

  9. java静态类和非静态类_java静态方法和非静态方法的区别

    一.相同点: 静态类和非静态类在C#中定义基本是一样的,只是静态类定义需要加上static修饰符而已. 二.生命周期: 静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的 ...

最新文章

  1. 从paxos到raft zab,为何raft能够“独领风骚”
  2. python 学习笔记8 (模块)
  3. 启动azkaban报错_解决启动Azkaban报错问题:java.lang.NoSuchMethodError: com.google.comm
  4. php cdi_Swing应用程序中的CDI事件将UI和事件处理分离
  5. oracle 索引invisible,Oracle index unusable和invisible的区别
  6. as3调用外部swf里的类的方法
  7. PyQt5 QTableView 全部item居中
  8. CNN进行新闻文本分类代码实战,包含分类文本
  9. 什么是大平层?大平层比别墅好吗?
  10. 面向对象——意图与逻辑(三)
  11. 程序员买房,买车,一个避不开的梗
  12. 征信报告 加密文档_Secret Folder for Mac(文件加密隐藏软件)
  13. 怎么保存html上的图片,一分钟教你如何保存网页上一些不能直接保存的图片
  14. 【量化分析】债券投资分析
  15. 在react脚手架中使用Tailwind CSS (入门)
  16. 三星android 8.0 流畅,三星Galaxy S8使用安卓Android 8.0:更顺滑更流畅
  17. 在我的电脑里计算机管理在哪里,电脑控制面板在哪里查找步骤 一起了解下吧...
  18. jquery实现星星闪烁功能
  19. 简易数字示波器,DDS信号源的设计方案
  20. 7.PostgreSQL操作语句

热门文章

  1. java url 缩略图_java根据url生成网页截图,缩略图 | 学步园
  2. 三类测量血压原理 - 智能手环测血压原理详解
  3. php mysql刷新表格_PHP和AJAMYSQL数据库刷新表格
  4. 大班线描机器人_大班美术教案机器人
  5. python删除列表第几个元素_python中对列表list遍历的过程中删除元素4种方法
  6. 为什么老是把词语读反_关于语言表达 6岁儿童经常把词语顺序念反
  7. OpenShift 4 - 配置OpenShift可使用的外部Image Registry和Mirror Registry
  8. Elasticseach 从零开始学习记录(二) - Head插件
  9. 在Blazor中构建数据库应用程序——第3部分——UI中的CRUD编辑和查看操作
  10. Blazor Hydra——在单个站点上托管多个Blazor SPA