6

重複の可能性:
Java: Long 結果 = -1: int から long に変換できません

たとえばInteger foo = 4Long foo = 4L両方ともコンパイルされますが、コンパイルされLong foo = 4ません。これには理由がありますか?

4

1 に答える 1

5
Long foo = 4;

意味:int値 4 の を class のオブジェクトに割り当てますLong。オートボクシングは適切なプリミティブにしか適用できないため、オートボクシングを使用しようとして失敗します。次の 2 つの方法で修正できます。

Long foo = (long) 4;
Long foo = 4L;

int最初のケースでは、 4 を 4 にキャストしlongます。2 番目のケースでは、ロングを提供します。

質問に答えるには: Java は自動キャストをサポートしておらず、入力が非常に厳密です。

于 2012-12-17T13:31:08.150 に答える