O que é .intValue () em Java?

Qual a diferença entre eles?

l é um arraylist do tipo Integer.

versão 1:

 int[] a = new int[l.size()]; for (int i = 0; i < l.size(); i++) { a[i] = l.get(i); } return a; 

versão 2:

 int[] a = new int[l.size()]; for (int i = 0; i < l.size(); i++) { a[i] = l.get(i).intValue(); } return a; 

l.get(i); retornará Integer e, em seguida, chamando intValue(); nela retornará o inteiro como tipo int .

A conversão de um int em Integer é chamada de boxe .
Converter um Integer em int é chamado de unboxing
E assim por diante, para conversão entre outros tipos primitivos e suas classs Wrapper correspondentes.

Desde o java 5, ele fará automaticamente as conversões necessárias para você (autoboxing), portanto, não há diferença em seus exemplos se você estiver trabalhando com o Java 5 ou posterior . A única coisa que você tem que cuidar é se um Integer é nulo, e você o designa diretamente para int então ele lançará NullPointerException.

Antes do java 5, o próprio programador tinha que fazer boxe / unboxing.

Como você percebeu, intValue não é muito útil quando você já sabe que tem um Integer . No entanto, esse método não é declarado no Integer , mas na class Number geral. Em uma situação em que tudo o que você sabe é que você tem algum Number , você perceberá a utilidade desse método.

O object retornado por l.get (i) é uma instância da class Integer .

intValue () é um método de instância da class Integer que retorna um int primitivo.

Veja o documento de referência em Java … http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#intValue ()

Java suporta dois tipos de estruturas primeiro são primitivos, segundo são objects.

O método que você está perguntando é usado para recuperar o valor de Object para primitivo.

Todos os tipos de java que representam a number extend class Number . Esses methods são de alguma forma obsoletos se você usar o mesmo tipo primitivo e de object desde que [autoboxing] foi implementado no Java 1.5.

int – primitivo

Inteiro – object

Antes do Java 1.5, éramos obrigados a escrever

int i = integer.intValue();

desde o Java 1.5 podemos escrever

int i = integer;

Esses methods também são usados ​​quando precisamos mudar nosso tipo de Integer para Long

long l = integer.longValue();

get(i) retornará o object Integer e obterá seu valor quando você chamar intValue() . No primeiro caso, o intValue() auto-unboxing ocorre automaticamente.

Eles são exatamente os mesmos. Como outros pôsteres mencionaram, você pode colocar o object Integer ou o int primitivo no array. No primeiro caso, o compilador converterá automaticamente o object Integer em primitivo. Isso é chamado de auto-boxing.

É apenas um método de conveniência para obter valor primitivo do object Number : http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Number.html

Considere o código:

 Integer integerValue = Integer.valueOf(123); float floatValue = integerValue.floatValue(); 

A última linha é um método conveniente para fazer:

 float floatValue = (float)(int)integerValue; 

Como qualquer tipo numérico em Java pode ser explicitamente convertido em qualquer outro tipo numérico primitivo, a class Number implementa todas essas conversões. Como de costume, alguns deles não fazem muito sentido:

 Integer integerValue = Integer.valueOf(123); int intValue = integerValue.intValue(); int intValue2 = (int)integerValue; int intValue3 = integerValue;