У меня есть код, который я бы написал
GenericClass<Foo> foos = new GenericClass<>();
Пока коллега напишет его
GenericClass<Foo> foos = new GenericClass();
утверждая, что в этом случае алмазный оператор ничего не добавляет.
Я знаю, что конструкторы, которые фактически используют аргументы, относящиеся к родовому типу, могут вызвать ошибку времени компиляции с <>
вместо ошибки времени выполнения в сыром случае. И что ошибка времени компиляции намного лучше. (Как указано в этом вопросе)
Я также прекрасно понимаю, что компилятор (и IDE) может генерировать предупреждения для назначения типов raw для дженериков.
Вопрос заключается в том, что для аргументов нет аргументов или нет аргументов, связанных с родовым типом. В этом случае существует ли способ, по которому построенный объект GenericClass<Foo> foos
может различаться в зависимости от того, какой конструктор использовался, или же стирание типа Javas гарантирует, что они идентичны?