在我的java代码中,我做了类似的事情:
int sleep = 0;
sleep(sleep);
sleep++;
我的老板指出,这不好。它无法在PHP中正常工作。
在java中使用上面的代码是否存在任何问题/危险?
答案 0 :(得分:5)
没有危险,因为如果没有参数的括号,方法将永远不会被引用,因此名称永远不会发生冲突。
然而,如果方法名称是动词而变量名称是名词,则通常更清晰,更直观,例如:
int sleepMillis = 0;
sleep(sleepMillis);
sleepMillis++;
答案 1 :(得分:2)
没有语法上的理由说明为什么你不能这样做,但作为一般的开发原则,如果你没有使用相同的名称,为了清晰起见,通常会更清楚。
答案 2 :(得分:1)
我之前从未尝试过,但我认为它可以正常工作,因为Java应该能够区分变量和方法之间的差异。它应该工作,但像这样的代码令人困惑。不要使变量名称与您将使用的方法匹配。
答案 3 :(得分:1)
在具有一阶函数的动态类型语言中,相同的代码会更成问题,实际上变量可以指向函数或值,直到运行时才能区分它们。