私の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 は静的に型付けされているため、変数が必要な場所でメソッドを使用しようとすると (またはその逆)、コンパイラが指摘するので、実際には問題にはなりません。
同じコードは、実際には変数が関数または値を指している可能性があり、実行時までそれらを区別する方法がない、一次関数を含む動的に型付けされた言語ではさらに問題になります。