Pull to refresh

Comments 12

Отдельный плюс за генерик-параметры конструктора :-) В восьмёрке генерик параметров в целом стало существенно больше. Вон, навскидку java.util.stream.AbstractTask<P_IN, P_OUT, R, K> — четыре параметра, и среди его наследников ещё с полдюжины таких. А какой-нибудь java.util.stream.Collectors.groupingBy(Function<? super T, ? extends K>, Supplier<M>, Collector<? super T, A, D>) имеет целых пять генерик-параметров.
Ага, по поводу последнего любят твитить в стиле «вы можете понять сигнатуру этого метода? Java превратилась в адЪ»
А я как-то привык уже. Сам пишу в таком духе :-) Вон меня на SO сам Stuart Marks плюсанул за 6 генерик-параметров. По факту в какой-то момент щёлкает в голове, и потом уже это не выглядит сложно.
Аналог этого в C# тоже по сигнатуре выглядет страшно :)

IEnumerable<TResult> GroupBy<TSource, TKey, TElement, TResult>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, Func<TKey, IEnumerable<TElement>, TResult> resultSelector, IEqualityComparer<TKey> comparer)
Поля, конечно, стоило поделить на статичные и нестатичные. Одно дело, когда класс типа java.awt.PageAttributes.MediaType, который просто набор констант, а другое — действительно адский по числу полей javax.swing.plaf.nimbus.FileChooserPainter.
О чем думали люди, которые делали конструктор с 18-ю параметрами…
java.awt.Event с 80+ полей тоже порадовал, на каких же там костылях все работает, и с чем же боролись эти парни, ведь рекордсмен по интерфейсам java.awt.AWTEventMulticaster тоже с событиями связан!
Это внутренние детали реализации. Для них важно быть не столько красивыми, сколько быстрыми. Вообще-то куски Java и на ассемблере написаны, это тоже не очень красиво кому-то покажется =)
Не соглашусь. Практика показывает, что если в чем-то не смогли разобраться как следует, то происходит неоправданное усложнение. Я думаю, что это именно тот случай и соглашусь с комментарием vsb ниже.
Ну и, кстати, в java.awt.Event всего 12 полей. Остальное — статические константы, описывающие типы событий. Из 12 полей большинство выглядит разумными. Косяк только в том, что они по большей части публичные и не финальные.
UFO just landed and posted this here
В Java-9 в рамках проекта JigSaw вынесли весь Swing/AWT в отдельный модуль java.desktop. Насколько я понимаю идею, должна быть возможность собрать кастомизированный JDK без этого модуля. Сам не пробовал :-) RMI, SQL, w3c DOM тоже в отдельных модулях.
Такое впечатление, что в «типовых параметрах методов» чего-то не хватает.
Декларация generic-параметров есть, а использования не видно. Да и пробелы после запятых не помешали бы.

Возможно, SWING и AWT стоило исключить из анализа? Они сильно зашумляют результаты.
Sign up to leave a comment.

Articles