Эх, если бы всегда было бы так просто, то можно было бы вообще тут написать var secureRandom = new SecureRandom(). Но в суровой реальности метод может хоть Ваней называться и быть неподвластной для меня частью, разрабатываемой другим отделом, а вот название локальной переменной при этом может только сбивать с толку.
Попробовал, java.security.SecureRandom не переименовывается :\
А если серёзно, то тут же проблема не в переименовании самого типа, в смене возвращаемого методом типа на другой.
Оказывается не один я такой, кому влом писать final, полностью разделяю данную точку зрения. В случае же с val/var я бы с удовольствием пользовался val.
Да ведь с "индусов" взятки гладки, их проблемы в итоге мои проблемы, как заказчика. И тогда светлое будущее при таком раскладе — соглашение "Make Type Not Var".
Да, это будет просто дикий levelup для java платформы. Но почему-то у меня такое чувство, что чем дальше приходит понимание эпичности реализации с тем грузом обратной совместимости, тем более начинает теряться интерес к данному проекту. Или же как с Jigsaw будет.
Да, было бы здорово, если бы все пользовались идеей и её рефакторингом при смене возвращаемого типа метода.
И вы говорите за какую-то будущую версию идеи? В текущей версии Type Migration не меняет название переменной. А Change Signature не меняет даже тип.
Как там правильно HolyVal или HolyVar? Всё это сахарок. Вывод типов в параметрах лямбды уже доставляет некоторый дискомфорт. При автокомплите уже выработалась привычка, что IDE подставит нужный тип, но тут привычки приходится менять. А в случае же с var/val, говнокод просто станет изящней, особенно когда вдруг кто-то решит поменять возвращаемый тип функции, результат которой присваивается при помощи var. Например (с потолка) var secureRandom = someMethod(), где возвращаемый тип вместо SecureRandom кто-то просто решит поменять на Random, а название переменной конечно же никто не отрефакторит. И при Code Rewiew это пролетит естественно мимо. Я конечно уверен, что в здравом уме так никто писать не будет, но практика в enterprise доказывает обратное, что если что-то можно написать более коряво, то обязательно кто-то воспользуется данной возможностью.
В общем, резюмируя, в умелых руках сахарок возможно и полезен, но каждый раз, когда захочется написать var/val нужно подумать, а уместно ли здесь это. Или же не думать и просто писать в старом стиле.
Гораздо интереснее, а что там с Project Valhalla a.k.a Value Types?
Ну не верю, что у спецслужб нет в рукаве прекрасных отмычек от гаджетов на все случаи жизни. А тут как мне кажется нашли на телефоне действительно что то стоящее, что стоит официального шума.
А если серёзно, то тут же проблема не в переименовании самого типа, в смене возвращаемого методом типа на другой.
И вы говорите за какую-то будущую версию идеи? В текущей версии Type Migration не меняет название переменной. А Change Signature не меняет даже тип.
В общем, резюмируя, в умелых руках сахарок возможно и полезен, но каждый раз, когда захочется написать var/val нужно подумать, а уместно ли здесь это. Или же не думать и просто писать в старом стиле.
Гораздо интереснее, а что там с Project Valhalla a.k.a Value Types?