ここでこの質問を見ました。この質問の問題は、次の行です。
Integer i3 = (Integer) -128; /*** Doesn't compile ***/
答えのいくつかが言うように:
The compiler interprets the - as the two-arg minus operator, i.e. it's trying to subtract 128 from some other number named Integer, but there's no such variable in scope
答えは私にとって正しいようです。今groovyで、以前と同じコードを試しました:
Integer i3 = (Integer) -128; /*** compiles!!! ***/
この行のコードでもコンパイルされます:
Integer i3 = (Integer) -(128); /*** compiles ***/
Groovy はこの操作をどのように実行しますか? すべてのJvm言語はこれを行いますか? Groovy の場合、舞台裏で何が起こっているのか。
これはJavaのルールに違反していませんか? 少し混乱しました。
参考までに、動作中の Groovy コードをここにタグ付けしました。
前もって感謝します。