在我的 java 代码中,我做了类似的事情:
int sleep = 0;
sleep(sleep);
sleep++;
我的老板指出这不好。它不会在 php 中正确工作。
在java中使用上面的代码有什么问题/危险吗?
在我的 java 代码中,我做了类似的事情:
int sleep = 0;
sleep(sleep);
sleep++;
我的老板指出这不好。它不会在 php 中正确工作。
在java中使用上面的代码有什么问题/危险吗?
没有危险,因为在没有参数括号的情况下永远不会引用方法,因此名称永远不会冲突。
但是,如果方法名称是动词而变量名称是名词,通常会更清晰、更直观,例如:
int sleepMillis = 0;
sleep(sleepMillis);
sleepMillis++;
你不能这样做没有语法原因,但作为一般的开发原则,为了清楚起见,如果你不使用相同的名称,通常会更清楚。
我以前从未尝试过,但我认为它可以正常工作,因为 Java 应该能够区分变量和方法之间的差异。它应该可以工作,但这样的代码令人困惑。不要让变量名称与您将使用的方法相匹配。
至少可以说,这令人困惑。这并不是一个真正的问题,因为如果您尝试使用预期变量的方法(反之亦然),编译器会指向您,这要归功于 Java 是静态类型的。
在具有一阶函数的动态类型语言中,相同的代码会出现更多问题,实际上变量可以指向一个函数或一个值,直到运行时才能区分它们。