Я предпочитаю первую версию по всем причинам, которые вы упомянули. В частности (просто для разъяснения вашего четвертого пункта), это означает, что вы определенно получите последовательные результаты ... вы можете получить ужасно неприятные результаты со второй версией, если getVehicle()
вернул Car
при первом вызове затем Bike
на втором ...
Производительность меня не беспокоит (например, я буду часто звонить List.size()
), но читаемость, последовательность и неповторение намного важнее. По сути, первый фрагмент передает идею «получить значение, а затем использовать его» гораздо эффективнее, чем второй.
Так что да, я с тобой ... кто-нибудь рекомендует тебе второй вариант?