为什么不使用new关键字就可以实例化Toast?

为什么不使用new关键字就可以实例化Toast?,第1张

为什么不使用new关键字就可以实例化Toast?

这里没有什么特别的

Toast
。您只是在调用创建实例的静态方法(或者可以重用现有实例-
这是实现细节)。例如,这是您会在各处看到的一种模式
Calendar.getInstance()
。有时可以改为调用构造函数,有时 只能
通过静态方法创建实例。

除非幕后功夫,否则在实现的 某个地方 很可能会调用构造函数。这是一个简单的例子:

public final class CreateViaMethod {    private final String name;    private CreateViaMethod(String name) {        this.name = name;    }    public static CreateViaMethod newInstance(String name) {        return new CreateViaMethod(name);    }}

API设计人员 可能 要这样做的原因有多种。例如,可能有几种具有相同参数类型但名称不同的“创建”方法,例如

public static Duration fromSeconds(int seconds)public static Duration fromMinutes(int minutes)public static Duration fromHours(int hours)

…那里不能有三个重载的构造函数,但是可以给 方法指定 不同的名称。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5427241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存