Теперь с выпуском библиотеки поддержки дизайна 23.1.1 вы можете использовать
NavigationView navigationView = (NavigationView) findViewById(R.id.your_nav_view_id);
View header = navigationView.getHeaderView(0)
TextView text = (TextView) header.findViewById(R.id.textView);
Я думаю, что Вы правы, Java не имеет большого количества удобных новых возможностей, которые представил C#. Большим количеством новых функций C# являются просто приемы компилятора к (свойства, возразите intitializers, дополнительным методам), что можно выполнить вручную в C# или Java.
люди Java, вероятно, не представили эти новые возможности, потому что они, вероятно, предпочитают сохранять язык максимально простым и назад совместимым.
я действительно должен сказать, что предпочитаю писать C# в эти дни.
Я сказал бы, да, Java не поддержал на высоком уровне. Microsoft хорошо изучила Java (и C++) и выяснила, какие раздражения они имели, и что функции пропускали и зафиксировали многих из тех, которые в последующих версиях C#.
кроме того, разработчики Java, кажется, пытаются сохранить свой язык и синтаксические анализаторы максимально простыми, тогда как разработчики C# не боятся синтаксического сахара: свойства, делегаты, лямбды и LINQ являются всеми примерами этого. И поскольку Вы уже заметили, ложка синтаксического сахара заставляет язык понизиться намного легче.
Java, конечно, отстал, хотя я сказал бы, что это ближе к C# 2.0, чем C# 1.1 - это имеет дженерики, например, даже при том, что они несколько отличаются от дженериков в C#.
я был разочарован услышать, что многие предложенные функции языка были отброшены для Java 7 (особенно закрытия), но тогда Монета Проекта пришла - так, по крайней мере, мы могли бы иметь приблизительно маленькие функции для нетерпеливого ожидания.
я не вижу, что Java ловит до C# в терминах языка в ближайшее время - у них есть больше багажа языка, который мешает изменять язык, с одной стороны. Тривиальный, хотя это может звучать, контролируемые исключительные ситуации добавляют дополнительную "ось" к сигнатурам методов, которые делают некоторые вещи (как закрытия) более хитрыми, чем они были бы иначе.
(И конечно C# 4.0 является распуханием в представление также...)
Чем более старый популярный язык, тем больше его кодовая база становится и изменяется на языки, сделаны более консервативным способом, для не повреждения существующей кодовой базы, которая была бы дорогой для фиксации.
Java является одним из более старых языков. C# является относительно новым и может позволить себе быть измененным более радикально. Сравните с C и C++, который не изменился в течение десятилетия.
, Если Вы действительно хотите новые функции языка своего нового кода, попробуйте другой основанный на JVM язык, который взаимодействует с Java (Groovy, Scala, Clojure).
Я думаю, что часть проблемы является экономической. Это не случайно, что Java пришел, когда Sun был ведущим игроком на рынке. Их запас был на рекордно высоком уровне в марте 2000, питается всеми серверами, которые покупали компании доткома.
, Когда пузырьковый пакет и все те серверы поступают в продажу, требовалось много времени, чтобы избыток работался через. Sun не восстановился с него. Увеличение мощности товарных серверов разрушило край, который однажды имели специализированные микросхемы с сокращенным набором команд и Солярис. Вы не можете быть большой военной мощью, если Вы не экономическая мощь; быть новатором в этом масштабе требует наличных денег, также.
Они потеряли большой талант (например, Bill Joy), который раньше питал компанию.
Sun, в его нижней части, компании-производителе оборудования. Стратегия с Java, особенно на стороне сервера, состояла в том, что это поможет управлять аппаратными продажами.
я думаю, что темп изменения для Java пострадал из-за всего этого.
Microsoft продолжает разрабатывать C#, потому что доход продолжает вливать, Anders все еще с ними, и они - компания-разработчик программного обеспечения, которая в конечном счете делает деньги от продукта. Вот почему они вперед теперь.
И это не к Swing по сравнению с WPF, которые похожи на мел по сравнению с икрой.
Действительно Вы правы. Но, я думаю, что акцент улучшений языка в значительной степени перенесся на новые языки JVM, такой как Groovy и Scala.
И возможно это - хорошая вещь, поскольку Java имеет значительную базу пользователей, которая, к сожалению, едва может согласиться, о которых функциях, если таковые имеются, и в какой форма должна быть добавлена к языку. Например, бросьте взгляд на этот опрос . С другой стороны, Sun обещал улучшения JVM, которая упростила бы разработку и выполнение динамических языков JVM, такой как инструкция invokedynamic , JSR 292.
мне это - достойный компромисс.