Συνεχίζω να βρίσκω τόσο εδώ όσο και στο Google ανθρώπους που έχουν προβλήματα να πηγαίνουν από το long
στο int
και όχι το αντίστροφο. Ωστόσο, είμαι σίγουρος ότι δεν είμαι ο μόνος που έχει αντιμετωπίσει αυτό το σενάριο πριν πάει από το int
στο Long
.
Οι μόνες άλλες απαντήσεις που βρήκα ήταν "Απλά ορίστε το ως Long εξαρχής" το οποίο πραγματικά δεν απαντά στην ερώτηση.
Αρχικά δοκίμασα να κάνω casting αλλά μου έρχεται το "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);
}
Όπως μπορείτε να φανταστείτε είμαι λίγο μπερδεμένος, έχω κολλήσει χρησιμοποιώντας int
αφού κάποιο περιεχόμενο έρχεται ως ArrayList
και η οντότητα για την οποία αποθηκεύω αυτές τις πληροφορίες απαιτεί τον αριθμό ακολουθίας ως Long.
Σημειώστε ότι υπάρχει διαφορά μεταξύ ενός cast σε long
και ενός cast σε Long
. Εάν κάνετε cast σε long
(μια πρωτόγονη τιμή) τότε θα πρέπει να γίνει αυτόματα boxed σε Long
(ο τύπος αναφοράς που την περιβάλλει).
Θα μπορούσατε εναλλακτικά να χρησιμοποιήσετε το new
για να δημιουργήσετε μια περίπτωση του Long
, αρχικοποιώντας το με την τιμή int
.