为什么Java中需要使用双冒号运算符



我来自JavaScript背景,第一次看到::运算符。我理解它的作用,但我想知道为什么它是必要的。在JavaScript中,类似这样的东西是完全有效的:

[1, 2, 3].forEach(console.log);

不需要新的运算符——我只是不直接/显式地调用log函数。所以我的问题是,为什么这在Java中不起作用?Java中有什么使Class.method不可用(屏蔽它?!(?

因为变量和方法在Java中不共享同一名称空间,所以可以使用相同名称的变量和方法。

这在Java:中有效

class Test {
private static int c;
private static int c() { return 0; }
}

如果我们没有::运算符,那么Test.c在这里指的是什么?

最新更新