JavaでintからLongに変換するにはどうしたらいいですか?

ここやGoogleで、longからintへの移行に問題を抱えている人をよく見かけますが、その逆はありません。しかし、intからlong`にする前にこのシナリオに遭遇したのは私だけではないはずです。

私が見つけた他の回答は、"最初からLongに設定すればいい"というものでしたが、これでは質問に答えているとは言えません。

最初はキャストを試みましたが、"Cannot cast from int to Long"

for (int i = 0; i < myArrayList.size(); ++i ) {
    content = new Content();
    content.setDescription(myArrayList.get(i));
    content.setSequence((Long) i);
    session.save(content);
}

ご想像のとおり、私は少し困惑しています。コンテンツの一部が ArrayList として入ってきて、この情報を保存しているエンティティがシーケンス番号を Long として必要としているため、int を使うことにこだわっています。

ソリューション

longへのキャストとLongへのキャストには違いがあることに注意してください。long(プリミティブな値)にキャストした場合、それは自動的にLong(それをラップした参照型)にボックス化されるはずです。

代わりに new を使用して Long のインスタンスを作成し、int 値で初期化することもできます。

解説 (8)

次のように使用します。Long.valueOf(int);を参照してください。

解説 (8)

intがすでにIntegerとして型付けされている場合は、このようにすることができます。

Integer y = 1;
long x = y.longValue();
解説 (0)