Универсальный шаблонный экземпляр
Я просматривал чужой код на днях и наткнулся на строку, которая вызвала некоторую обеспокоенность. Для упрощения, скажем, у меня есть общий класс A и абстрактный класс B. Разрешено ли следующее создание экземпляров и если да, то почему?
Object obj = new A<? extends B>();
Лично я никогда не видел таких экземпляров, как выше, хотя такое заявление, как
A<? extends B> obj = null;
конечно бы держал. Я всегда использовал подстановочные знаки в шаблонах для объявления параметров метода, поэтому у меня может просто не быть опыта.