Строка присваивается списку без ошибки компиляции [дубликат]

На этот вопрос уже есть ответ здесь:

Почему этот универсальный метод с привязкой может возвращать любой тип? 1 ответ

Как я знаю, одной из основных целей обобщений в Java является обеспечение безопасности типов во время компиляции. Если он скомпилирован, код будет работать без проблем.

Тогда почему следующий код компилируется?

public static void main(String[] args) {
    String s = getList();
}

private static <T extends List> T getList() {
    return (T)new ArrayList();
}

Компилируется нормально. Где моя типобезопасная компиляция?getList() Метод не имеет ничего общего сString учебный класс.

Ответы на вопрос(1)

Ваш ответ на вопрос