Aku terus mencari baik di sini dan orang-orang Google mengalami kesulitan pergi dari long
ke int
dan tidak jalan di sekitar lainnya. Namun saya yakin saya bukan satu-satunya yang mengalami skenario ini sebelum beralih dari int
ke Long
.
Satu-satunya jawaban lain yang saya temukan adalah "Setel sebagai Long di tempat pertama" yang benar-benar tidak menjawab pertanyaan.
Saya awalnya mencoba casting tetapi saya mendapat " 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);
}
Seperti yang dapat Anda bayangkan, saya sedikit bingung, saya terjebak menggunakan int
karena beberapa konten masuk sebagai ArrayList
dan entitas tempat saya menyimpan info ini memerlukan nomor urut sebagai Long.
java
casting
int
long-integer
Hantu
sumber
sumber
int
tolong
first, lalu assignlong
toLong
. misalnyaint x = 2; Long y = (long)x;
Jawaban:
Perhatikan bahwa ada perbedaan antara pemain ke
long
dan pemain keLong
. Jika Anda memilihlong
(nilai primitif) maka itu harus secara otomatis kotak keLong
(tipe referensi yang membungkusnya).Anda bisa menggunakan alternatif
new
untuk membuat instanceLong
, menginisialisasi denganint
nilai.sumber
Long
objek baru setiap waktu.Long.valueOf()
(jika saya ingat dengan benar), jadi tidak akan ada perbedaan sama sekali. Komentar saya adalah sebagai jawaban atas jawaban, bukan komentar Anda.Gunakan berikut:
Long.valueOf(int);
.sumber
Long.valueOf(int) !!
Integer
kaleng, itulah yang dia katakan.Jika Anda sudah memiliki int yang diketik sebagai Integer Anda dapat melakukan ini:
sumber
menggunakan
atau
sumber
Saya punya mainan kecil ini, yang juga berhubungan dengan antarmuka non generik. Saya setuju dengan itu melempar ClassCastException jika salah makan (OK dan senang)
sumber
Di Jawa Anda bisa melakukan:
dalam kasus Anda itu adalah:
sumber
Bagaimana tentang
// Tidak akan dikompilasi
// Kompilasi, dan pertahankan semangat non-NULL int. Yang terbaik pemain adalah tidak ada cast sama sekali . Tentu saja, use case Anda mungkin membutuhkan nilai NULL yang Panjang dan mungkin. Tetapi jika int, atau rindu lain adalah satu-satunya masukan Anda, dan metode Anda dapat dimodifikasi, saya akan menyarankan pendekatan ini.
// Mengkompilasi, adalah cara yang paling efisien, dan membuatnya jelas bahwa nilai sumber, adalah dan tidak akan pernah menjadi NULL.
sumber
Kami akan mendapatkan nilai panjang dengan menggunakan
Number
referensi.Ini berfungsi untuk semua tipe angka, berikut ini tesnya:
sumber
sumber
Saya memiliki banyak masalah dengan ini. Saya hanya ingin:
Di mana IntervalCount adalah Long, dan JSpinner ditetapkan untuk mengembalikan Long. Akhirnya saya harus menulis fungsi ini:
yang tampaknya melakukan trik. Tidak ada jumlah pengecoran sederhana, tidak ada solusi di atas yang bekerja untuk saya. Sangat membuat frustrasi.
sumber
jPaidCountSpinner.getValue()
mengembalikan Obyek yang sebenarnya adalah aLong
, Anda pasti hanya perlu menempatkan(Long)
pemain di depan. Juga coba letakkan breakpoint pada cek Anda untukint.class
atau yang lainnyalong.class
. Apakah itu pernah mengenai itu? Dan jika Anda memiliki objek seperti angka, itu akan mendukungjava.util.Number
, jadi serahkan ke sana dan panggillongValue
metode tersebut. Tidak perlu melalui string dalam kasus itu. Jadi fungsi ini bisa disederhanakan sedikit, bahkan jika Anda juga harus berurusan dengan string. (Bagian dari masalah di sini adalah dokumentasi referensi buruk untukJSpinner
).sumber
Segera setelah hanya ada metode
Long.valueOf(long)
, pemain dariint
kelong
akan dilakukan secara implisit jika menggunakanLong.valueOf(intValue)
.Cara yang lebih jelas untuk melakukan ini adalah
sumber
longValue
hanya(long)
, jadi satu-satunya hal yang Anda "dapatkan" di sini adalahInteger
cache internal.