gpt4 book ai didi

java - 创建主方法与静态方法的实例

转载 作者:行者123 更新时间:2023-12-02 09:02:40 26 4
gpt4 key购买 nike

我想知道这样做是否有任何好处

public static main(String[] args)
{
Main mainInstance = new Main();
mainInstance.Foo();
}

public void Foo() {}

关于这个

public static main(String[] args)
{
Foo();
}

public static void Foo() {}

习惯的是第二个示例,但我遇到了一段类似于第一个示例的代码,并且很想知道它是否比其他示例有任何好处

最佳答案

在一个简单的示例中(例如您的示例),没有区别。

更一般地说,我认为第一种方法相对于第二种方法有两个优点:

  1. 假设 foo 方法和其他方法使用封闭类的字段中保存的信息。如果方法是静态,那么字段也需要是静态。众所周知,静态变量使单元测试变得困难。第一种方法避免了这个问题,无论是测试 main 还是其他方法。

  2. 假设封闭类 (Main) 提供的功能非常重要,并且您希望能够重用它。如果您的代码结构如下:

    public class Main {

    public static main(String[] args) {
    Main main = new Main();
    // parse 'args' and set config parameters in 'Main' fields
    main.doIt();
    }

    public void doIt() {
    ...
    }
    }

    然后您可以通过其他方式使用main的功能。例如,您可以像这样使用它:

    Main.main(new String[]{"arg1", "arg2"});

    或者像这样:

    Main m = new Main();
    m.setConfigParam1(...);
    m.setConfigParam2(...);
    m.doIt();

    使用实例和实例字段可以为您提供更大的灵 active 。

这些是否重要取决于上下文。

关于java - 创建主方法与静态方法的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60051860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com