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