public static void main(String[] args)
我通常知道主要函数在一个参数args中包含提供的命令行参数作为字符串对象的数组。
- 除了
String[] args
以外,我还没有看到Main的任何其他参数。为什么不为String
或Integer
的数组? - 如果有一种方法来指定
main
函数的输入,请提供一个示例。
回答您的问题: no
详细信息:
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html
Java命令启动了Java应用程序。它通过启动Java运行时环境,加载指定类并调用该类的 MAIN 方法来做到这一点。
该方法必须被声明公开和静态,它不得返回任何值,并且必须接受字符串数组为参数。该方法声明具有以下形式:
公共静态void main(string [] args(
您已经知道,这是 main 的方法定义,而您无法更改它。但是,您可以将args
数组中的元素转换为任何其他原始类型,因为它以有效的格式将其转换为<<<<<<<<<的左侧的有效格式>em>分配运算符。的左侧的有效格式>
有多种方法可以实现这一目标,其中之一是:
int input = Integer.valueOf(args[0]);
no,您的主方法不能仅采用字符串,主方法必须使用数组语法或varagrs
语法接受字符串数组,请阅读以下以下JSL§12.1.4。调用test.main
最后,在完成初始化以进行课堂测试(在 其他结果负载,链接和初始化可能具有 发生了(,调用了测试主管。
该方法主要必须被声明为公共,静态和空隙。它必须 指定正式参数(§8.4.1(其声明类型是数组 细绳。因此,以下任何一个声明都可以接受:
public static void main(String[] args)
public static void main(String... args)
因此,您可以选择任何一种语法,而不仅仅是字符串。
仅对于您的信息,您就可以创建一个诸如public static void main(String args)
的方法,但不会被视为JVM看起来为起点的类的"主要"方法。因此,如果您想在课堂中使用"主要"方法,则必须从上述任何一种语法中进行选择。
为什么不一个字符串或整数数组?
不是整数数组,因为该数组只能涵盖可能的参数的一部分(您可以解析它们并获得一个整数,但是您还需要检查它们是否是整数,否则您会得到NumberFormateXception(。p>不是字符串而不是字符串数组,因为最好将命令参数分开,而不是将它们放在一个大字符串中,实际上,很多时候您需要分别处理命令参数。
没有其他签名,即VM将识别为main
方法。只有一个主要签名是public static void main(String[] args)
我没有看到主参数以外的任何参数[] args。为什么不一个字符串或整数数组?
是的,您可以将任何String
或Integer
作为参数,但这将成为不同的函数main()
方法,而不是Java使用的方法来启动您的程序。汇编后,Java搜索public static void main(String[] args){}
的开始。如果更改参数,则您的程序根本不会运行。现在使用数组将仅涵盖数组可以允许的特定类型的值,例如int[]
只能存储int
值,类似地,String
只能具有一个值,而您可能需要具有多个参数。
如果有办法指定主函数的输入,请提供一个示例。
是的,有多种方法可以使用命令行(用于Windows(和终端(For Linux/Unix(传递参数。
- 使用
javac Filename.java
编译Java程序 - 运行Java程序以及参数
java FileName param1 param2 param3
(param1,param2,param3是要通过的参数(。