我理解它的用途,但是当他们设计 java 时为什么不允许主运行没有String [] args(如果我作为程序员,不需要数组)?这个决定背后有什么逻辑吗?
实际上,除非您的名字是 James Gosling,否则这个问题根本无法回答,而且我认为他在 SO 上并不是特别活跃。
不,它没有“逻辑”,它就是这样。主要必须采取某种形式。具体来说:
interface Camera {void shoot(Person p); }as well interface Gun {void shoot(Person p);},即使相机的结构和枪的结构相同(它们都有一个shoot(Person)方法),您也不能只是对待甚至将相机投射到枪上,反之亦然- java 是名义上的。结构无所谓。除了 main,这都是关于结构的。与自己不谋而合。没有真正的逻辑。
List<String>会更有意义。简单的:
List不在 java 1.0 中。有,java.util.Vector但这绝对被视为一个螺栓固定的东西。泛型肯定不在身边。switch.对吗?)有解释:...因为它看起来对 C 程序员来说很熟悉。在今天看来,Java确实不合时宜和愚蠢,确实削弱了 C 的统治地位,没有其他语言真正做到这一点(像 Python 这样的一群人比 Java 更古老并且也很流行,但是直到后来比较 Python 才流行起来到 java 流行的时候。不过,您可以提出一个论点,即 Perl 和 PHP 确实有点像 C 的方式)。在“现代”Java 中,你会得到类似的东西:
public class Main extends Application {
@Override public void run (Args args) { ... }
}
Run Code Online (Sandbox Code Playgroud)
规则是这样的东西必须有一个公共的无参数构造函数。
鉴于 java 以这种方式开始,它不会改变,以保持向后兼容性。尝试以这种方式重新设计事物还不够重要,至少 OpenJDK 团队似乎并不这么认为。