2009-09-03 10 views
0

我最近進入了Java。我有動態語言的背景,我終於搞清楚爲什麼人們抱怨Java的冗長。那裏有沒有解決這個問題的類庫?我寧願輸入類似String text = someClass.stdin()的東西,而不是使用Java獲得用戶輸入所需的8行左右。用於Java的巨大冗長的類庫

回答

5

某些Apache Commons庫(特別是Lang,IO和Collections)旨在隱藏某些核心Java API的詳細程度。然而,Java語言的冗長,我們都堅持着。

+0

這看起來正是我所需要的。 – 2009-09-03 18:35:34

2

肯定有幾個了JPython,JRuby的,Clojure中,斯卡拉...

2

谷歌還發布了許多補充標準庫的部分,如集合庫庫。 Guice也是一個不錯的輕量級DI框架,恕我直言,這個春天更容易學習。

標準庫太大了我不認爲你會找到一個替換所有東西的庫。你是最好的辦法是尋找一個解決個別問題庫(即我不喜歡集合API,我需要一個對象池等)

6

在Java 5:

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

或者,在Java 6中:

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

+1好點,確保標準庫的最新版本尚未解決它。 – Yishai 2009-09-03 18:24:36

+1

現在升級到Java 6。感謝禪宗般的洞察力:有時你正在尋找的東西已經在那裏。 – 2009-09-03 18:36:46

1

我有興趣看到這8行用Java輸入用戶輸入。

我個人認爲隨着程序變得更大,Java的冗長性變成了一種資產。與C和C++不同,所有事情都是以面向對象的方式完成的。你得到代表你的輸出的對象,然後你對它發出一個操作,等等。從長遠來看,更容易理解和維護。

這是否就像一個很好的printf()在這裏和那裏一樣快?不。和Python中的腳本一樣方便嗎?當然不是。但這是使用像Java這樣的語言的成本的一部分,就像缺乏Lambdas令人討厭一樣。

作爲一名工程師,您的職責是爲工作挑選最佳工具。我使用Java編寫了大部分代碼,並且使用Python編寫了大部分代碼,並接受了各自的權衡。

雖然無法更改語言,但可以使用簡化某些操作的庫(例如Google或Apache的IO庫)。你也可以編寫你自己的課程,讓你最感興趣的事情。

我也認爲你混淆了語言和標準庫的冗長性。圖書館包含很多東西,其中大部分是你永遠不需要的。我發現現有的部門相當簡單,並且從未在我不關心的領域找到自己。

如果你真的無法忍受Java,你可能想使用Scala等混合語言。

0

我非常喜歡IDE的活模板功能。 (IntelliJ IDEA)我不記得上次拼寫出StringBuffer或System.out.println(「...」)。