String[] 主参数

String[] args in main

谁能告诉我,为什么main方法中的参数是String类型的。在

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

我的意思是,为什么它不是 int 或 float 或其他东西。我也被问到同样的问题,但找不到合适的答案。

您可能 运行 您的 java 程序通过控制台使用参数,如下所示:

java YourClass first second third

在 java 程序中,您可以通过 String args[] 使用它。

public static void main(String[] args) {
    Arrays.asList(args).forEach(System.out::println);
}

输出:

first
second
third

但没有必要使用这样的名称。声明 main 方法签名的方式有几种:

public static void main(String... args)
public static void main(String[] strings)
public static void main(String [] args)

为什么它不是 int 或 float 或其他东西? 在命令提示符下命令被认为是 string.

我会给你我的意见。

  1. 命令行参数是字符串,这就是数据类型的原因。
  2. 您可以从字符串中轻松获取其他数据类型。
  3. Java 的大部分语法都基于 C,并且由于 C 使用了字符串参数,所以 java 的创建者可能也这样做了。 (只是一种可能)

当我们写 java filename.java 时,这意味着您将文件名提供给要调用其主要方法的 java 编译器,很明显,您提供的文件名将是一个字符串。

另一方面,如果你想同时给编译器任何参数,它也将是字符串而不是整数或任何其他数据类型。

因为String可以很容易的转换成任何类型。如果它是 int 并且您想将 double 作为输入,这将如何发生?但是使用 String,您可以转换为您期望的任何内容。