Bagaimana cara mengkonversi dari int ke Long di Jawa?

Aku terus mencari baik di sini dan Google orang-orang yang memiliki masalah pergi dari lama untuk int dan bukan sebaliknya. Namun saya'm yakin aku'm bukan satu-satunya yang telah mengalami skenario ini sebelum pergi dari int untuk Lama.

Satu-satunya jawaban yang saya've ditemukan "Hanya mengatur lebih Lama di tempat pertama" yang benar-benar doesn't menjawab pertanyaan.

Awalnya saya mencoba casting tapi saya mendapatkan "Tidak cast dari int ke Long"

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

Seperti yang dapat anda bayangkan I'm sedikit bingung, aku'm terjebak menggunakan int sejak beberapa konten akan datang sebagai ArrayList dan entitas yang saya'm menyimpan info ini membutuhkan nomor urut seperti yang Lama.

Mengomentari pertanyaan (4)
Larutan

Perhatikan bahwa ada perbedaan antara pemain untuk lama dan melemparkan ke Lama. Jika anda dilemparkan ke lama (primitif nilai) maka harus secara otomatis kotak yang Lama (referensi jenis yang membungkus itu).

Anda bisa atau menggunakan new untuk membuat sebuah instance dari Lama, memulainya dengan int nilai.

Komentar (8)

Gunakan berikut ini: Lama.valueOf(int);.

Komentar (8)

Jika anda sudah memiliki int diketik sebagai Integer yang dapat anda lakukan ini:

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

gunakan

new Long(your_integer);

atau

Long.valueOf(your_integer);
Komentar (0)

Aku punya mainan kecil ini, yang juga berkaitan dengan non generik interface. I'm OK dengan itu melemparkan ClassCastException jika pakan yang salah (OK dan bahagia)

public class TypeUtil {
    public static long castToLong(Object o) {
        Number n = (Number) o;
        return n.longValue();
    }
}
Komentar (0)

Di Jawa yang dapat anda lakukan:

 int myInt=4;
 Long myLong= new Long(myInt);

dalam kasus anda itu akan menjadi:

content.setSequence(new Long(i));
Komentar (0)

Bagaimana

int myInt = 88;

// Tidak akan di compile

Long myLong = myInt;

// Mengkompilasi, dan mempertahankan non-NULL semangat int. Terbaik cast adalah tidak ada pemain di semua. Tentu saja, kasus penggunaan anda mungkin memerlukan Panjang dan mungkin nilai-nilai NULL. Tapi jika int, atau rindu yang anda hanya input, dan metode yang dapat dimodifikasi, saya akan menyarankan pendekatan ini.

long myLong = myInt;

// Mengkompilasi, adalah cara yang paling efisien, dan membuat jelas bahwa sumber nilai, dan tidak akan pernah menjadi NULL.

Long myLong = (long) myInt;
Komentar (0)
 1,new Long(intValue);
 2,Long.valueOf(intValue);
Komentar (0)

Kita akan mendapatkan nilai panjang dengan menggunakan Nomor referensi.

public static long toLong(Number number){
    return number.longValue();
}

Ini bekerja untuk semua jenis nomor, di sini adalah tes yang:

public static void testToLong() throws Exception {
    assertEquals(0l, toLong(0));   // an int
    assertEquals(0l, toLong((short)0)); // a short
    assertEquals(0l, toLong(0l)); // a long
    assertEquals(0l, toLong((long) 0)); // another long
    assertEquals(0l, toLong(0.0f));  // a float
    assertEquals(0l, toLong(0.0));  // a double

}
Komentar (0)
 //Suppose you have int and you wan to convert it to Long
 int i=78;
 //convert to Long
 Long l=Long.valueOf(i)
Komentar (0)

Saya punya banyak masalah dengan hal ini. Aku hanya ingin:

thisBill.IntervalCount = jPaidCountSpinner.getValue();

Di mana IntervalCount Panjang, dan JSpinner ditetapkan untuk kembali Panjang. Akhirnya saya harus menulis fungsi ini:

    public static final Long getLong(Object obj) throws IllegalArgumentException {
    Long rv;

    if((obj.getClass() == Integer.class) || (obj.getClass() == Long.class) || (obj.getClass() == Double.class)) {
        rv = Long.parseLong(obj.toString());
    }
    else if((obj.getClass() == int.class) || (obj.getClass() == long.class) || (obj.getClass() == double.class)) {
        rv = (Long) obj;
    }
    else if(obj.getClass() == String.class) {
        rv = Long.parseLong(obj.toString());
    }
    else {
        throw new IllegalArgumentException("getLong: type " + obj.getClass() + " = \"" + obj.toString() + "\" unaccounted for");
    }

    return rv;
}

yang tampaknya untuk melakukan trik. Tidak ada jumlah sederhana casting, tidak ada solusi di atas bekerja untuk saya. Sangat frustasi.

Komentar (2)

Begitu ada hanya metode Lama.valueOf(lama), cast dari int untuk lama akan dilakukan secara implisit dalam kasus menggunakan Lama.valueOf(intValue).

Lebih jelas cara untuk melakukan ini adalah

Integer.valueOf(intValue).longValue()
Komentar (1)