Как ссылки на < T → обрабатывается компилятором в следующем коде, так как метод не принимает параметров, которые позволили бы вывести T? Существуют ли какие-либо ограничения на то, какой тип объекта может быть помещен в список? Является ли приведение даже в строке, где я добавляю строку в список? Моя первая мысль состоит в том, что без каких-либо выводов T от T становится типом объекта. Спасибо заранее.
public class App {
private <T> void parameterizedMethod()
{
List<T> list = new ArrayList<>();
for(int i = 0; i < 10; i++)
{
list.add((T)new String()); //is a cast actually occurring here?
}
}
public App()
{
parameterizedMethod();
}
public static void main(String[] args) {
new App();
}
}