在java中,按照Java Language Specification 12.1.4 main 方法应声明如下:
public static void main(String[] args){
//code of program
}
通过使用String[] args
我们可以获得命令行参数。有时需要将这些命令行参数转换为适当的类型。假设如果您提供了任何数字 123
作为参数,并且希望将其转换为 int
,那么我们可以使用以下转换方法之一:
int n1=Integer.valueOf(args[0]);
//or
int n2=Integer.parseInt(args[0]);
但是,如果 java 可以提供使用 Objects[] args
而不是 String[] args
那么我们可以轻松地从一种类型转换为另一种类型,对于本例转换将会发生如下:
public static void main(Object[] args){
int n1=(Integer)args[0];
}
我不明白为什么java使用String[] args
而不是Object[] args
?
最佳答案
Java在设计时就考虑到了可移植性,因此Java程序可以被不同的操作环境调用。让环境将 Java 对象传递给 main
会给调用者系统带来太多限制,因为该系统将承担“理解”输入并将其转换为 Java 对象的任务。
另一方面,字符串是通用的:所有操作环境都有它们。因此,Java 规范需要字符串,因为知道您的 Java 程序将能够比外部环境更好地处理和理解它们。
关于java - 为什么java中只有String[] args而不是Object[] args?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20207913/