java - 从类中创建静态对象,其行为类似于方法

标签 java constructor

我对最近看到的脚本有点困惑。我想要一些关于它的解释。我用谷歌搜索了一下,发现这个机制已经被使用了一段时间,但我无法理解它。如果我的问题有任何问题,请不要降级。

我是一名 Android 开发者,并开始成为传奇。 :D

public final class ClassName{

    public static ClassName initSDK(@NonNull @GuiContext Context context) {
        return new ClassName(context);
    }   

    private ClassName(Context guiContext) {
        startSDK(guiContext);
    }

}

什么是initSDK。它是如何调用的,机制是什么?

感谢您抽出宝贵的时间!

最佳答案

initSDK 这里是一个静态方法,您可以通过它的类名来调用它,例如:

ClassName instance1 = ClassName.initSDK(context);

在内部,它创建一个ClassName对象实例并返回它。例如,这里的instance1ClassName的一个实例。

请注意,类构造函数 private ClassName(Context guiContext) { .. } 被声明为 private,这意味着您无法通过以下方法实例化该对象:

// Wrong, can't instantiate object this way. Constructor is declared "private"
ClassName instance2 = new ClassName(context);

initSDK类似,有时这种类似的方法被命名为getInstance(),表示获取对象的实例,通过包名称。

关于java - 从类中创建静态对象,其行为类似于方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50794384/

相关文章:

java - 用 Java 将文本写入文件

java - 内部类和构造函数

Java - 强制子类在构造函数之后调用 super 方法

f# - 在 F# 中覆盖构造函数

java - 如何使用 Android 中的列表项点击导航到另一个 Activity

java - 使用 Apache commons 文件上传设置要上传的默认文件

java - 我的关于Mysql和JAVA的代码有什么问题

c# - 在 Inherited Class Constructor C# 中强制部分基初始化(和方法)(就像抽象对方法所做的那样)——解决这个问题

java - 如何在语句后调用构造函数?

java - gwt suggestbox 不会隐藏在页面滚动上