为什么Java中的main方法总是需要参数?

为什么Java中的main方法总是需要参数?为什么我们String[] args每次都要写,而不是在使用任何参数时才写?

这样的方法会生成Main method not found编译器错误。由于我们从不对main方法使用任何参数,因此应允许这样做。

public static void main()

{

}

这不是面试问题。编程时才想到。

回答:

基本上,有四个答案:

  1. 因为那是它的设计方式。是的,我知道这是一个循环的原因。但是关键是这就是它的样子,并且不会改变。因此,除非您打算设计自己的语言,否则这个问题是没有意义的。

  2. 设计的清洁度(也称为DRY原理)。当一个可以完成这项工作时,请不要指定两个入口点签名。显然可以。

  3. 语义简单。(假设)假设Java 确实 支持void main(String[])void main()入口点。如果一个类同时定义了这两种方法,会发生什么?那是错误吗?如果不是,那么在存在歧义时哪个优先?这令人困惑吗?

通过仅识别void main(String[]),JLS避免了该问题1。

  1. 这类似于标准的C和C 入口点签名。(诚​​然,某些C / C 运行时也支持其他非标准入口点……但这并不是一件好事……IMO。)

所有这些都不意味着以另一种方式做这件事肯定是错误的。例如,C#为您提供了替代签名,并通过要求开发人员以其他方式指定入口点来解决歧义问题。

FWIW,此维基百科页面以多种语言描述“主要”方法。


1-尽管您遇到了“问题”,但是Java新手可能会(错误地) 猜到

应该有多个入口点可以工作,尝试并获得惊喜。但是我认为任何设计都无法应付“凭猜测进行编程”。

以上是 为什么Java中的main方法总是需要参数? 的全部内容, 来源链接: utcz.com/qa/416791.html

回到顶部