ベストアンサー1
Integer i = theLong != null ? theLong.intValue() : null;
または、null を気にする必要がない場合は、次のようにします。
// auto-unboxing does not go from Long to int directly, so
Integer i = (int) (long) theLong;
どちらの状況でも、オーバーフローが発生する可能性があります (Long は Integer よりも広い範囲を格納できるため)。
Java 8 にはオーバーフローをチェックするヘルパー メソッドがあります (その場合は例外が発生します)。
Integer i = theLong == null ? null : Math.toIntExact(theLong);