时间:2015-08-09 17:34:38

标签: java arguments

有人可以说,为什么main方法中的args是String类型。在

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

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

4 个答案:

答案 0 :(得分:5)

您可以通过控制台运行带有参数的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或其他东西?在命令提示符下,该命令被认为是字符串

答案 1 :(得分:3)

我会给你我的意见。

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

答案 2 :(得分:3)

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

另一端如果要同时向编译器提供任何参数,它也将是字符串而不是整数或任何其他数据类型。

答案 3 :(得分:3)

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