- 1
- 2
- 3
- 4
- 5
public List<ImportException> importFiles() {
Collection<ImportException> exceptions = new ArrayList<ImportException>();
/* весь метод exceptions ссылается на этот список */
return (List<ImportException>) exceptions;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+69
public List<ImportException> importFiles() {
Collection<ImportException> exceptions = new ArrayList<ImportException>();
/* весь метод exceptions ссылается на этот список */
return (List<ImportException>) exceptions;
}
Полиморфизм ёпт
1) Жабьи generics не шаблоны (в исконном крестосмысле), а всего лишь проверки на уровне компилятора :)
2) Смотря как. List<ImportException> в Collection<ImportException> кастанется молча. Collection<ImportException> в List<ImportException> - только ручным кастом, ну и может выбросить исключение, если там был не потомок List'а. А вот List<Derived> и List<Base> - не кастуются ни туды ни сюды, т.к. можно прострелить себе ногу.
Yo dawg! I herd you like checked exceptions so we put checked exceptions into your checked exception so you can handle errors while you handling errors.
Более того try-finally превращает её в дерево, ибо исключение в try может быть подавлено исключением в finally.
What has been seen cannot be unseen.
На тот сайт за чем-нибудь, кроме гоатсе, вообще заходят?