Πώς μπορώ να μετατρέψω από int σε Long στη Java;

Συνεχίζω να βρίσκω τόσο εδώ όσο και στο Google ανθρώπους που έχουν προβλήματα να πηγαίνουν από το long στο int και όχι το αντίστροφο. Ωστόσο, είμαι σίγουρος ότι δεν είμαι ο μόνος που έχει αντιμετωπίσει αυτό το σενάριο πριν πάει από το int στο Long.

Οι μόνες άλλες απαντήσεις που βρήκα ήταν "Απλά ορίστε το ως Long εξαρχής" το οποίο πραγματικά δεν απαντά στην ερώτηση.

Αρχικά δοκίμασα να κάνω casting αλλά μου έρχεται το "Cannot cast from int to Long&quot,

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.

Σχόλια (8)

Αν έχετε ήδη το int τυποποιημένο ως Integer, μπορείτε να το κάνετε αυτό:

Integer y = 1;
long x = y.longValue();
Σχόλια (0)