已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以用事实与引用来回答.
昨天关门了。
Improve this question
class Main{
public static void main(String[] args){
}
}
在上面的代码中,编译器每次执行时都会搜索以String[] args
为参数的main函数。
为什么数组列表或其他列表不能用于获取相同String类型的运行时参数?
使用任何其他列表比使用数组有什么缺点吗?
1条答案
按热度按时间z9ju0rcb1#
Java非常接近Objective-C(除了它从C++中继承的方法调用语法)。值得注意的是ObjectiveC中的
main
使用了从C中继承的原始main
原型,而不是一个完全形成的容器:原始的
char
指针在Java中不存在,所以我们至少从那里得救了!入口点依赖于加载或可用的最少语言基础结构/包,这是有道理的,但我个人认为它是早期添加的,从未审查过,因为它不是一个严格的依赖关系。
当然,为自己创造一个更好的切入点是很容易的:
就我个人而言,我认为两者都应该被允许作为入口点,并且运行时环境要么传递一个普通的旧数组,要么传递
ArrayList
,如main()
的签名所指示的那样。Java已经允许几种样式,所以没有理由不支持
void main(ArrayList args) throws java.lang.Exception
。当大多数建议都是“不要陷入简单的旧数组”时,这不是真的必要,但也不是太多。