在Java中,main()方法除了字符串数组外,还能接受其他参数吗?


公共静态void main()方法接受来自用户的**String**类型的数值数组。

public class{
   public static void main(String[] args){
   }
}

您可以在执行时,在类名之后用空格隔开传递它们,例如:

java ClassName 10 20 30

然后,在程序(main方法中),您可以从String数组中提取这些值并使用。

示例

例如,您可以使用命令行参数在上述程序中传递a和b,例如:

public class Sample {
   public static void main(String[] args){
      int a = Integer.parseInt(args[0]);
      int b = Integer.parseInt(args[1]);
      int c = a+b;
      System.out.println("Sum of the two numbers is "+c);
   }
}

输出

您可以编译并运行程序,通过命令提示符在执行行传递值,如下所示:

main方法的其他参数

您可以使用除了String以外的其他参数编写public static void main()方法,程序也能编译通过。

由于main方法是Java程序的入口点,因此每当您执行一个程序时,JVM都会搜索main方法,该方法是公共的、静态的,返回类型为void,并且参数为String数组。

Public static void main(String args[]){
}

如果缺少任何一项,JVM都会引发错误。因此,如果您使用其他数据类型(除了String数组)作为参数编写方法,在执行时,JVM不会将此新方法视为Java的入口点,并会生成错误。

示例

在下面的Java程序中,我们尝试使用整数数组作为main方法的参数。

 在线演示

public class MainExample {
   public static void main(int args[]) {
      System.out.println("Hello how are you");
   }
}

输出

执行此程序时,会生成以下错误:

Error: Main method not found in class MainMethodExample, please define the main
method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

更新于:2020年6月29日

4K+ 次查看

启动您的职业生涯

完成课程获得认证

开始学习
广告