Je continue à trouver à la fois ici et les gens de Google ayant des problèmes allant de long
la , int
et non l'inverse. Pourtant, je suis sûr que je ne suis pas le seul à avoir rencontré ce scénario avant de passer de int
à Long
.
Les seules autres réponses que j'ai trouvées étaient "Il suffit de le définir comme Long en premier lieu", ce qui ne répond vraiment pas à la question.
J'ai d'abord essayé le casting mais j'obtiens un " 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);
}
Comme vous pouvez l'imaginer, je suis un peu perplexe, je suis coincé à utiliser int
car certains contenus arrivent en tant que ArrayList
et l'entité pour laquelle je stocke ces informations nécessite le numéro de séquence en tant que Long.
java
casting
int
long-integer
Fantôme
la source
la source
int
d'long
abord, puis attribuerlong
àLong
. par exempleint x = 2; Long y = (long)x;
Réponses:
Notez qu'il existe une différence entre un cast vers
long
et un cast versLong
. Si vous transtypez enlong
(une valeur primitive), il doit alors être automatiquement encadré en unLong
(le type de référence qui l'enveloppe).Vous pouvez également utiliser
new
pour créer une instance deLong
, l'initialiser avec laint
valeur.la source
Long
objet à chaque fois.Long.valueOf()
(si je me souviens bien), donc il n'y aurait pas de différence du tout. Mon commentaire était en réponse à la réponse, pas à votre commentaire.Utilisez ce qui suit:
Long.valueOf(int);
.la source
Long.valueOf(int) !!
Integer
can, c'est ce qu'il a dit.Si vous avez déjà l'intégré comme entier, vous pouvez le faire:
la source
utilisation
ou
la source
J'ai ce petit jouet, qui traite également des interfaces non génériques. Je suis d'accord avec le lancement d'une exception ClassCastException si le flux est incorrect (OK et heureux)
la source
En Java, vous pouvez faire:
dans votre cas ce serait:
la source
Que diriez-vous
// Ne compile pas
// Compile et conserve l'esprit non NULL de int. Le meilleur casting n'est pas du tout lancé . Bien sûr, votre cas d'utilisation peut nécessiter des valeurs NULL longues et possibles. Mais si l'int, ou d'autres longs sont votre seule entrée, et que votre méthode peut être modifiée, je suggère cette approche.
// Compile, est le moyen le plus efficace et indique clairement que la valeur source est et ne sera jamais NULL.
la source
Nous obtiendrons la valeur longue en utilisant la
Number
référence.Cela fonctionne pour tous les types de nombres, voici un test:
la source
la source
J'ai eu beaucoup de mal avec ça. Je voulais juste:
Où IntervalCount est un Long et le JSpinner a été défini pour renvoyer un Long. Finalement, j'ai dû écrire cette fonction:
qui semble faire l'affaire. Aucune quantité de casting simple, aucune des solutions ci-dessus n'a fonctionné pour moi. Très frustrant.
la source
jPaidCountSpinner.getValue()
renvoie un objet qui est en fait unLong
, il vous suffit de placer un(Long)
plâtre devant. Essayez également de mettre un point d'arrêt sur votre chèque pourint.class
oulong.class
etc. Et si vous avez un objet semblable à un nombre, il le supporterajava.util.Number
, alors convertissez-le en cela et appelez lalongValue
méthode. Pas besoin de passer par une chaîne dans ce cas. Cette fonction pourrait donc être un peu simplifiée, même si vous devez également gérer les chaînes. (Une partie du problème ici est la mauvaise documentation de référence pourJSpinner
).la source
Dès qu'il n'y a qu'une méthode
Long.valueOf(long)
, le cast deint
àlong
se fera implicitement en cas d'utilisationLong.valueOf(intValue)
.La façon la plus claire de le faire est
la source
longValue
est juste un(long)
, donc la seule chose que vous "gagnez" ici estInteger
le cache interne de.