Articles of autoboxing

java: Entendendo o método Arrays.asList (T… array) para tipos primitivos

Eu escrevi o seguinte código e fiquei surpreso ao ver a saída: Integer a = 211; int b = 211; int[] array = {210,211,212}; System.out.println(Arrays.asList(array).contains(a)); System.out.println(Arrays.asList(array).contains(b)); Saída: false false Eu encontrei esta pergunta e algumas outras questões ligadas a ela e aprendi que o método asList não enche a Autobox. Eu verifiquei o tipo retornado […]

Por que os Integers não são armazenados em cache no Java?

Eu sei que existem posts semelhantes sobre o assunto, mas eles não respondem à minha pergunta. Quando você faz: Integer a = 10; Integer b = 10; System.out.println(“a == b: ” + (a == b)); Isto irá (aparentemente) imprimir true maior parte do tempo, porque números inteiros no intervalo [-128, 127] são armazenados em cache […]

Por que o autoboxing faz algumas chamadas ambíguas em Java?

Eu notei hoje que o auto-boxing pode às vezes causar ambigüidade na resolução de sobrecarga do método. O exemplo mais simples parece ser este: public class Test { static void f(Object a, boolean b) {} static void f(Object a, Object b) {} static void m(int a, boolean b) { f(a,b); } } Quando compilado, causa […]

Java Arrays.asList no tipo de matriz primitiva produz inesperado List type

Duplicar Possível: Arrays.asList () não está funcionando como deveria? Aparentemente, o tipo de retorno de Arrays.asList(new int[] { 1, 2, 3 }); é List . Isso parece totalmente quebrado para mim. Isso tem alguma coisa a ver com o Java não arrays autoboxing de tipos primitivos?

A autoboxing é possível para as classs que eu crio?

Existe alguma maneira de usar o autoboxing para as classs que eu crio? Por exemplo, eu tenho essa subclass de Number . public class UnsignedInteger extends Number { int n; public UnsignedInteger(int n) { if(n >= 0) this.n = n; else throw new IllegalArgumentException(“Only positive integers are supported”); } } Agora, UnsignedInteger i = new […]

Que código o compilador gera para autoboxing?

Quando o compilador Java autoboxing um primitivo para a class wrapper, o código é gerado nos bastidores? Eu imagino que chama: O método valueOf () no wrapper O construtor do wrapper Alguma outra magia?

É garantido que o novo Integer (i) == i em Java?

Considere o seguinte trecho: int i = 99999999; byte b = 99; short s = 9999; Integer ii = Integer.valueOf(9); // should be within cache System.out.println(new Integer(i) == i); // “true” System.out.println(new Integer(b) == b); // “true” System.out.println(new Integer(s) == s); // “true” System.out.println(new Integer(ii) == ii); // “false” É óbvio porque a última linha […]

Ao usar == para um valor primitivo e em checkbox, a autoboxing é feita ou o unboxing é feito

O código a seguir compila (com o Java 8): Integer i1 = 1000; int i2 = 1000; boolean compared = (i1 == i2); mas o que isso faz? Unbox i1 : boolean compared = (i1.intvalue() == i2); ou checkbox i2 : boolean compared = (i1 == new Integer(i2)); Então, ele compara dois objects Integer (por […]

Java: Qual a diferença entre autoboxing e casting?

Esta pergunta é sobre “Por que o autoboxing faz algumas chamadas ambíguas em Java?” Mas lendo as respostas, há várias referências ao casting e não tenho certeza se entendi completamente a diferença. Alguém pode fornecer uma explicação simples?

Comparar valores primitivos não primitivos 127 e 128

Eu quero comparar dois valores de objects longos usando if condições. Quando esses valores são menores que 128 , a condição if funciona corretamente, mas quando eles são maiores ou iguais a 128 , a comparação falha. Exemplo: Long num1 = 127; Long num2 = 127; if (num1 == num2) { // Works ok } […]