java - 为什么java中只有String[] args而不是Object[] args?

标签 java command-line-arguments command-prompt

在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/

相关文章:

java - 如何使用 iText 获取连字的宽度

java - 具有概率百分比的随机 boolean 生成器

java - 将 JDK 参数正确传递到 Maven pom 文件中

python - 使用 argparse 中的子命令创建解析器,自定义位置参数

python - argparse:多个可选位置参数之间的依赖关系

command-prompt - 即使安装程序包已设置为环境变量,“atom”命令也不起作用

java - 我在添加 SideMenu 我的应用程序时遇到问题

java - 更改 IntelliJ 代码构造符号

powershell - CMD:如何在一行中查找Windows中总内存的数值?

python - 使用 Python 创建旧式控制台表单