Oracle java tutorial - posible error con respecto al comentario de Java de autoboxing de caracteres [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Tiene el valor de llamada de autoboxing Of ()? 4 respuestas

Soy nuevo en JAVA, actualmente estoy aprendiendo la sección de genéricos de tutoriales de Oracle. Creo que hay un error allí, y quiero asegurarme de que no estoy equivocado. Agradeceré tus comentarios.

Vi la siguiente explicación enhttps: //docs.oracle.com/javase/tutorial/java/generics/restrictions.htm

Pair <Entero, Carácter> p = nuevo Par <> (8, 'a');

enga en cuenta que el compilador de Java autoboxes 8 a Integer.valueOf (8) y 'a' al Carácter ('a'):

Pair <Integer, Character> p = new Pair <> (Integer.valueOf (8),nuevo personaje ('a'));

Creo que esto es un error y 'a' en realidad se encuadra automáticamente en Character.valueOf ('a').

Escribí el siguiente programa para verificarlo. como pensé que quizás los genéricos tienen un boxeo especial, probé el método genérico, el método regular y la clase genérica:

class TestCharacter<T>{
public <T> void check( T first, T second){
    System.out.println("values: " + first + "  " + second);
    System.out.println(first.equals(second));
    System.out.println( "first == second is " + (first == second) );
    System.out.println( "first == second is " + (first == Character.valueOf('a')) );
}
}

public class TestAutoBoxingIssue{

public static <T> void check1( T first, T second){
    System.out.println("values: " + first + "  " + second);
    System.out.println(first.equals(second));
    System.out.println( "first == second is " + (first == second) );
    System.out.println( "first == second is " + (first == Character.valueOf('a')) );
}
public static void check2( Character first, Character second){
    System.out.println("values: " + first + "  " + second);
    System.out.println(first.equals(second));
    System.out.println( "first == second is " + (first == second) );
    System.out.println( "first == second is " + (first == Character.valueOf('a')) );
}
public static void main(String[] args){
    char first = 'a';
    char second = 'a';
    System.out.println("generic method usage: ");
    check1( first, second );
    System.out.println("=============");

    System.out.println("regular method usage: ");
    check2( first, second );
    System.out.println("=============");

    TestCharacter<Character> t = new TestCharacter<>();
    System.out.println("generic class usage: ");
    t.check(first, second );
    System.out.println("=============");
}

}

output es:

uso del método genérico: valores: un verdadero primero == segundo es verdadero

first == segundo es cierto

uso del método regular: valores: a a verdadero primero == segundo es verdadero

first == segundo es cierto

uso de clase genérica: valores: un verdadero primero == segundo es verdadero

first == segundo es cierto

Por lo tanto, creo que esto demuestra que 'a' se autoboxing a Character.valueOf.

¿Me estoy perdiendo de algo? ¿Es esta la forma correcta de verificarlo?

Gracias

Eliyahu

Respuestas a la pregunta(1)

Su respuesta a la pregunta