java - java中初始化一个对象

标签 java

这是我们初始化对象的正确方式吗?

我有一个类示例 我想初始化 Sample1 类中的对象 初始化后,我不需要使用示例类的对象。

在这种情况下,如果我不打算在任何地方使用 s,我可以将该对象初始化为 new Sample(); 而不是 Sample s = new Sample();在我的 Sample1 类中

我的问题是,这是一个好的做法吗? 会有后遗症吗

最佳答案

我经常在我的应用程序的主要方法中遇到你所描述的困境;我想初始化应用程序类,但之后不需要引用它,例如:

public class MyApplication {

    public MyApplication() {
        // Initialize and run application
    }

    public static void main(String[] args) {
        new MyApplication();
    }
}

有些人认为这是代码异味。然而,仅仅为了保留无用的引用而添加局部变量或字段似乎也是错误的。对你的问题的简短回答是:没有负面影响,设计是否糟糕还有待讨论。

“解决”这个问题的一种方法是让你的构造函数更加纯粹。人们可能会认为构造函数应该仅用于初始化,而不是用于启动应用程序。然后您可以按如下方式分离这些问题:

public class MyApplication {

    public MyApplication() {
        // Initialize application
    }

    public void run() {
        // Run application
    }

    public static void main(String[] args) {
        MyApplication app = new MyApplication();
        app.run();
    }
}

您可以将此视为有效的设计决策,同时它还解决了您的未引用实例问题!

关于java - java中初始化一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4537029/

相关文章:

java - 如何通过java程序创建注册表项?

java - 确定二进制数的间隙长度

java - 如何检查 jOOQ 中是否存在表?

java - 在删除项目后更新 StableIdKeyProvider 缓存和 RecyclerView/SelectionTracker 在新选择时崩溃

java - JfreeCharts 为 XYBarchart 指定特定宽度

java - 在scala中实现泛型通用接口(interface)

java - 连接多个结果集

java - 在启用 jfilechooser 多文件选择器中打开对话框后,文件显示选定的文件

java - 将 java ClassLoader 添加到堆而不是 perm gen

java - 编译字符串中给定的 java 程序