Что-то вроде следующего не даст мне ошибку времени компиляции или времени выполнения, и я рисую пустой вопрос о том, почему. Есть ли способ принудительно выполнить ошибку компиляции при вызове cls.add?Параметрированные списки в сигнатуре метода
Почему определение T в определении класса не переносится на вызов методов внутри? Я понимаю, что я не создавал класс таким образом, но определение состояний класса T должно быть числом.
public class NewClass<T extends Number> {
private List<T> id = new ArrayList<T>();
public void add(List<T> elem) {
id.addAll(elem);
}
public static void main(String[] args) {
NewClass cls = new NewClass();
cls.add(new ArrayList<String>());
}
}
Я понял, что это связано с использованием типа raw. Я подумал, может быть, был способ обеспечить определение Т с чем-то вроде public void add (Список elem) но не кубик. Спасибо за помощь. –
sma