List<Object> list = new ArrayList<String>()
Когда я использую выше строка компилятор дает мне несоответствие типов ошибок. Но поскольку я понимаю, что Object - это суперкласс String, и если я создаю список объектов, тогда он также должен принять String. Поэтому почему вышеприведенное утверждение неверно. Я ищу объяснение.Почему Список <Object> список = новый ArrayList <String>() это дает TypeMismatch ошибке
Нет. Тип в общем случае не работает. Вы можете сделать это с помощью 'List extends Object> list = new ArrayList(); ', но он неприменим (может' get() ', но не может' add() '). –
nhahtdh
Это сообщение, кажется, объясняет это довольно хорошо ... http://stackoverflow.com/a/12973616/828193 – user000001
http://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html – nhahtdh