Всем привет.
Мы имеем такой код:
private static <T> T testAutoboxing(T obj)
{
return obj;
}
public static void main(String[] argv)
{
System.out.println(Learn.<int>testAutoboxing(5));
}
В ходе стирания типов, int превратиться в Object, а приравнять значение 5 можно к Object с помощью автоупаковки.
Сам вопрос: почему в данном случае запрещается использовать примитивные типы, если у них есть автоупаковка, и почему она не срабатывает?
P.S. документацию читал, книгу читал и знаю чем отличаются ссылочные типы от примитивов. Вопрос может и элементарный, но я новичок со стажем в неделю. Непонятно лишь, почему объявив примитив, компилятор не преобразует его в оболочку, а там и в Object можно запихать, как это происходит с другими ссылочными типами. Или тут принципиальное разделение примитивов от объектов какого-либо класса?