Je continue à trouver ici et sur Google des gens qui ont des problèmes pour passer de long
à int
et pas l'inverse. Pourtant, je suis sûr que je ne suis pas le seul à avoir rencontré ce scénario en passant de int
à Long
.
Les seules autres réponses que j'ai trouvées sont : " Il suffit de le définir comme long dès le départ ", ce qui ne répond pas vraiment à la question.
J'ai d'abord essayé de faire un casting mais j'ai obtenu un "Cannot't 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);
}
Comme vous pouvez l’imaginer, je suis un peu perplexe. Je suis bloqué par l’utilisation de int
car certains contenus arrivent sous forme de ArrayList
et l’entité pour laquelle je stocke ces informations a besoin du numéro de séquence sous forme de Long.
Notez qu'il y a une différence entre un cast vers long
et un cast vers Long
. Si vous faites un cast vers long
(une valeur primitive), alors il devrait être automatiquement mis en boite vers un Long
(le type de référence qui l'englobe).
Vous pouvez aussi utiliser new
pour créer une instance de Long
, en l'initialisant avec la valeur int
.
Utilisez ce qui suit : [Long.valueOf(int);
][1].
[1] : http://docs.oracle.com/javase/7/docs/api/java/lang/Long.html#valueOf%28long%29