Когда примитив преобразовался?

Рейтинг: 0Ответов: 1Опубликовано: 31.01.2023

Допустим я отправляю примитивы

   int a = 22;
   long b = 43L;
   byte c = 2;
   short d = 4;
   Classus.funcius(a,b,c,d);

в клacc Classus, но при стирании типов оказалось что мои примитивы уже классы. Как и когда прошло преобразование и можно ли об этом где-то почитать

class Classus{
 public static <T> void funcius(T... arr) {
    for (int i = 0; i < arr.length; i++)
    System.out.println("This " + g[i].getClass());
   }}

Вывод

This class java.lang.Integer
This class java.lang.Long
This class java.lang.Byte
This class java.lang.Short

Ответы

▲ 0

Вы используете параметризованный тип в аргументе метода, дженерики работают только с объектами. Когда вы подсовываете примитив, срабатывает врапер, а на выходе получаются объекты-обертки.