Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
重複の可能性: Java: Long 結果 = -1: int から long に変換できません
たとえばInteger foo = 4、Long foo = 4L両方ともコンパイルされますが、コンパイルされLong foo = 4ません。これには理由がありますか?
Integer foo = 4
Long foo = 4L
Long foo = 4
Long foo = 4;
意味:int値 4 の を class のオブジェクトに割り当てますLong。オートボクシングは適切なプリミティブにしか適用できないため、オートボクシングを使用しようとして失敗します。次の 2 つの方法で修正できます。
int
Long
Long foo = (long) 4; Long foo = 4L;
int最初のケースでは、 4 を 4 にキャストしlongます。2 番目のケースでは、ロングを提供します。
long
質問に答えるには: Java は自動キャストをサポートしておらず、入力が非常に厳密です。