当前位置: 首页 > 知识库问答 >
问题:

是否有必要在java中向main方法添加String[]参数,即使我确定不会传递任何命令行参数?如果是,为什么?[副本]

金晗日
2023-03-14

是否有必要在java中向main方法添加String[]args,即使我确定我不会传递任何命令行参数?如果是,为什么?还有其他参数可以传递给main方法吗???

共有2个答案

鲁斯伯
2023-03-14

没有必要有参数,但是如果你给 main 方法 0 参数,你将无法使用它作为入口点。如果你去掉参数,它将编译。例如,此代码将编译并运行:

package com.sandbox;

public class Sandbox {

    public static void main(String[] args) {
        //you can run this from the command line
        main(); //you can call the faux main
    }

    public static void main() {
        //you can't run this from the command line
        System.out.println("called");
    }       
}
尉迟墨竹
2023-03-14

Java 语言规范第 12.1.4 点说:“是的,你必须这样做。

 类似资料:
  • 问题内容: 为什么Java中的main方法总是需要参数?为什么我们每次都要写,而不是在使用任何参数时才写? 这样的方法会生成编译器错误。由于我们从不对main方法使用任何参数,因此应允许这样做。 这不是面试问题。编程时才想到。 问题答案: 基本上,有四个答案: 因为那是它的设计方式。是的,我知道这是一个循环的原因。但是关键是这就是它的样子,并且不会改变。因此,除非您打算设计自己的语言,否则这个问题

  • 为什么Java中的main方法总是需要参数?为什么我们每次都要编写,而不是在使用任何参数时编写它? 像这样的方法会生成编译器错误。由于我们从不对main方法使用任何参数,因此应该允许这样做。 这不是面试问题。编程的时候突然想到的。

  • 在的情况下,将检索添加的元素。在的情况下,方法调用对所传递的字符串没有影响。JVM到底在做什么?有人能详细解释一下吗?

  • 问题内容: 这些方法之间在功能上有区别吗? 编辑(从其他贡献者添加了此语法): 问题答案: 不,但第一个是首选样式。 编辑: 另一个选项是 此外,它还允许调用者使用varargs语法。

  • 我正在阅读有关java中的同步概念的信息,并遇到了同步语句。 我想知道,为什么我们向它传递参数,尽管它看起来像静态块(这只是一个例子),并且传递的参数没有指定任何数据类型。 例: 如果有人知道,请解释。

  • 问题内容: 我将主类作为命令行参数传递给启动VM 现在我需要将命令行参数传递给该主类 有什么办法吗? 这就是我做的方式 这里的userVMargs是我的主类的类路径,也是该类的类路径,该类路径用于调用主类内部的类方法 和cmdLine拥有我的主类以及该类及其功能,我使用eclipse作为IDE来开发我的项目 问题答案: 如果要通过发送参数来启动VM,则应发送VM参数而不是程序参数。 程序参数是传递