Я знаю, что в дженериках Java при использовании параметра типа с несколькими границами компилятор стирает информацию о типе до «крайней левой границы» (т.е. первого класса/перечисления или интерфейса в списке). Так почему же следующий код компилируется без проблем?
public class Generic<T extends Object & Appendable & AutoCloseable> {
T t;
T method() throws Exception {
t.close();
char c='\u0000';
t.append(c);
return t;
}
public <T> T method2(T t) {
return t;
}
}
разве параметр типа T не должен рассматриваться как объект ?? (таким образом запрещая мне вызывать close() или append())??
method
? - person SMA   schedule 26.12.2015t.close()
несмотря на стирание типа? - person wero   schedule 26.12.2015AutoCloseable
, и OP ожидает, что он будет стерт доObject
. также см. мой ответ (это еще не ответ) - person Eugene   schedule 17.05.2018