Eu continuo achando tanto no aqui e Google povos que têm problemas que vão desde long
a int
e não a outra em torno caminho. No entanto, tenho certeza de que não sou o único que já se deparou com esse cenário antes de passar int
para Long
.
As únicas outras respostas que encontrei foram "Basta defini-lo como longo em primeiro lugar", o que realmente não aborda a questão.
Inicialmente, tentei transmitir, mas recebo um " 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);
}
Como você pode imaginar, estou um pouco perplexo, mas estou usando, int
pois algum conteúdo está chegando como uma ArrayList
entidade e a entidade para a qual estou armazenando essas informações requer o número de sequência como Longo.
java
casting
int
long-integer
Ghosty
fonte
fonte
int
paralong
primeiro e depois atribuirlong
paraLong
. por exemploint x = 2; Long y = (long)x;
Respostas:
Observe que há uma diferença entre um elenco para
long
e um elenco paraLong
. Se você converter paralong
(um valor primitivo), ele deverá ser automaticamente encaixotado em umLong
(o tipo de referência que o envolve).Como alternativa, você pode usar
new
para criar uma instância deLong
, inicializando-a com oint
valorfonte
Long
objeto todas as vezes.Long.valueOf()
(se bem me lembro), então não haveria diferença alguma. Meu comentário foi em resposta à resposta, não ao seu comentário.Use o seguinte:
Long.valueOf(int);
.fonte
Long.valueOf(int) !!
Integer
lata, foi o que ele disse.Se você já tiver digitado o int como um número inteiro, poderá fazer isso:
fonte
usar
ou
fonte
Eu tenho esse pequeno brinquedo, que também lida com interfaces não genéricas. Eu estou bem com isso lançando uma ClassCastException se o feed estiver errado (OK e feliz)
fonte
Em Java, você pode fazer:
no seu caso, seria:
fonte
E quanto a
// Não será compilado
// Compila e mantém o espírito não-NULL de int. O melhor elenco não tem elenco . Obviamente, seu caso de uso pode exigir valores NULL longos e possíveis. Mas se o int ou outros longs são sua única entrada e seu método pode ser modificado, eu sugeriria essa abordagem.
// Compila, é a maneira mais eficiente e deixa claro que o valor de origem é e nunca será NULL.
fonte
Obteremos o valor longo usando
Number
referência.Funciona para todos os tipos de números, aqui está um teste:
fonte
fonte
Eu tive muitos problemas com isso. Eu só queria:
Onde IntervalCount é um Long, e o JSpinner foi configurado para retornar um Long. Eventualmente, eu tive que escrever esta função:
o que parece fazer o truque. Nenhuma quantidade de elenco simples, nenhuma das soluções acima funcionou para mim. Muito frustrante.
fonte
jPaidCountSpinner.getValue()
retorna um objeto que é de fato aLong
, você definitivamente só precisa colocar um(Long)
elenco à frente. Tente também colocar um ponto de interrupção no seu cheque paraint.class
oulong.class
etc. E se você tiver um objeto parecido com um número, ele será compatíveljava.util.Number
, então faça isso e chame olongValue
método Não há necessidade de passar por uma string nesse caso. Portanto, essa função pode ser bastante simplificada, mesmo se você também precisar lidar com strings. (Parte do problema aqui é a documentação de referência incorreta paraJSpinner
).fonte
Assim que houver apenas um método
Long.valueOf(long)
, a conversão deint
paralong
será feita implicitamente no caso de usoLong.valueOf(intValue)
.A maneira mais clara de fazer isso é
fonte
longValue
é apenas um(long)
, então a única coisa que você "ganha" aqui éInteger
o cache interno.