2009-09-03 2 views
0

Недавно я попал в Java. У меня есть опыт работы на динамических языках, и я наконец выясняю, почему люди жалуются на многословие Java. Существуют ли библиотеки классов, которые затрагивают эту проблему? Я бы скорее напечатал что-то вроде String text = someClass.stdin() вместо 8 или около того строк, которые требуется для ввода пользователя на Java.Библиотеки классов для огромной многословия Java

ответ

5

Некоторые из библиотек Apache Commons (в частности, Lang, IO и Collections) призваны скрыть многословие некоторых основных Java-интерфейсов Java. Многословие языка Java, однако, мы все застряли.

+0

Это похоже на то, что мне нужно. –

2

Конечно, есть несколько JPython, JRuby, Clojure, Scala ...

2

Google также выпустил ряд библиотек, которые дополняют разделы стандартной библиотеки, как библиотеки коллекций. Guice также представляет собой легкую легкую основу DI, которая, ИМХО, легче узнать, что весна.

Стандартная библиотека настолько велика. Я не думаю, что вы найдете одну библиотеку, которая заменяет все. Вы лучше всего искать библиотеки, которые позволяют решать отдельные проблемы (т.е. я не люблю API Collections, мне нужен объект бассейн и т.д.)

6

В Java 5:

import java.util.Scanner; 
... 
System.out.print("Enter your name: "); 
String userName = new Scanner(System.in).nextLine(); 

Or , в Java 6:

String userName = System.console().readLine("Enter your name: "); 
+2

+1 Отличная точка, убедитесь, что последняя в стандартной библиотеке еще не обратилась к ней. – Yishai

+1

Переход на Java 6 сейчас. Спасибо за дзен-прозрение: иногда то, что вы ищете, уже есть. –

1

Мне было бы интересно увидеть эти 8 строк, чтобы получить пользовательский ввод в Java.

Я лично считаю, что многословие Java становится активом по мере того, как ваша программа становится больше. В отличие от C и C++, все делается более объектно-ориентированным способом. Вы получаете объект, представляющий ваш вывод, затем вы выполняете операцию над ним и т. Д. Намного легче понять и поддерживать в долгосрочной перспективе.

Это как быстро, как хороший printf() здесь и там? Нет. Это так же удобно, как скрипты на Python? Конечно нет. Но это часть стоимости использования языка, такого как Java, так же, как отсутствие Lambdas вызывает раздражение.

Как инженер, ваша роль - выбрать лучший инструмент для работы. Я делаю большую часть своего кодирования в Java, а некоторые в Python, принимая компромиссы каждого.

Хотя вы не можете изменить язык, вы можете использовать библиотеки, которые упрощают некоторые операции (например, библиотеки IO Google или Apache). Вы могли бы также написать свои собственные классы для вещей, которые вас больше всего раздражают.

Я также думаю, что вы путаете многословие языка и стандартной библиотеки. В библиотеке много вещей, большинство из которых вам никогда не понадобятся. Я нахожу существующее разделение довольно простым и никогда не находил себя в тех областях, в которых меня не волновало.

Если вы действительно не можете выдержать Java, вы можете использовать гибридные языки, такие как Scala.

0

Я большой поклонник того, что я полагаюсь на функции графического адаптера моей IDE. (IntelliJ IDEA) Я не могу вспомнить последний раз, когда я написал StringBuffer или System.out.println («...»).

Смежные вопросы