Был у меня когда-то проект специализированной IDE на основе Eclipse, внутри которого разрабы из IBM любили навалить instanceof по любому поводу. Это был настоящий ад: передаешь условный Subtype в метод, который ожидает Supertype, — и ничего не работает. И приходится полдня копаться в исходниках, чтобы где-то в глубине найти метод с пачкой instanceof, среди которых просто нет кейса на Subtype.
Проверка типа или попытка приведения — суть та же. Это нарушение принципа подстановки. Я понимаю, что есть море плохо спроектированных апи, но введение такого сахара дает стимул писать их еще больше.
instanceof
по любому поводу. Это был настоящий ад: передаешь условныйSubtype
в метод, который ожидаетSupertype
, — и ничего не работает. И приходится полдня копаться в исходниках, чтобы где-то в глубине найти метод с пачкойinstanceof
, среди которых просто нет кейса наSubtype
.В третьей версии создается функция верхнего уровня
new Tuple1 на практике не встречается.
Категорически поддерживаю:
Вот только почему после этого идёт as?, ведь это и есть проверка типа.