Я изучал списки и универсальность, когда обнаружил следующую проблему
, если у нас есть этот объект (который компилируется с любой ошибкой или предупреждением):
class Thing<TYPE>{
void add(List<TYPE> ls){...}
void add(TYPE ls){...}
}
, тогда мы делаем:
Thing<List> thing = new Thing<List>(); //warn about rawtypes but compile
List list=new ArrayList(); //same thing here
thing.add(list); //warn about unsafe cast but compile
как java решает, какой метод вызывать?
я понимаю, что это, вероятно, что-то, чего следует избегать любой ценой по нескольким причинам, но так как он все еще компилируется (по крайней мере, Eclipse сказал это может) мне все еще интересно, как бы он себя вел