阅读更多

43顶
20踩

编程语言

原创新闻 我的顶级Java工具名单

2008-11-02 12:13 by 副主编 QQbyte 评论(41) 有31242人浏览
Ignacio Coloma说道:作为一个软件开发者,缺乏想象力是最严重的罪过之一。我们经常把事情重复做一遍又一遍,但是我们很少改变这种方式,至少我是这样。经过这些年开发,在我的工具箱里面有了一些每个项目我都需要用到的工具,烦人的重复工作不再是我的事。

下面这些工具也许你已经用到,让我来仔细介绍它们:

StringUtils

这是象面包和奶油一样必须的通用语言库,这个实用工具类包括一些很早以前在String中未包含的重要方法。

StringUtils.isEmpty(null) && StringUtils.isEmpty(""); // true  
StringUtils.isBlank("   \n\t");                       // true  
StringUtils.substringAfterLast("foo.bar.baz", ".");   // "baz"  
StringUtils.substringBeforeLast("foo.bar.baz", ".");  // "foo.bar"  
StringUtils.split("foo.bar.baz", '.');                // { "foo", "bar", "baz" }  
StringUtils.split("foo,  bar,baz", ", ");             // { "foo", "bar", "baz" }  
StringUtils.leftPad("1", 3, '0');                     // "001"  


IOUtils and FileUtils

在一种当你需要手动操作多个文件罕见情况下必须具备的工具,这两个工具很相似(FileUtils操作文件,IOUtils操作InputStream和Reader classes),和捆绑常用IO.

File file1;
File file2;
InputStream inputStream;
OutputStream outputStream;

// copy one file into another
FileUtils.copyFile(file1, file2);
IOUtils.copy(inputStream, outputStream);

// read a file into a String
String s1 = FileUtils.readFileToString(file1);
String s2 = IOUtils.toString(inputStream);

// read a file into a list of Strings, one item per line
List<String> l1 = FileUtils.readLines(file1);
List<String> l2 = IOUtils.readLines(inputStream);

// put this in your finally() clause after manipulating streams
IOUtils.closeQuietly(inputStream);

// return the list of xml and text files in the specified folder and any subfolders
Collection<File> c1 = FileUtils.listFiles(file1, { "xml", "txt" }, true);

// copy one folder and its contents into another
FileUtils.copyDirectoryToDirectory(file1, file2);

// delete one folder and its contents
FileUtils.deleteDirectory(file1);


Google collections

这是我所知道的最好的扩展实现包,其中一些被社区叫嚣着要加入JDK:

// create an ArrayList with three arguments
List<String> list = Lists.newArrayList("foo", "bar", "baz");

// notice that there is no generics or class cast,
// and still this line does not generate a warning.
Set<String> s = Sets.newConcurrentHashSet();

// intersect and union are basic features of a Set, if you ask me
Set<String> s = Sets.intersect(s1, s2);

// Example  of multiple values in a Map
ListMultimap<String, Validator> validators = new ArrayListMultimap<String, Validator>();
validators.put("save", new RequiredValidator());
validators.put("save", new StringValidator());
validators.put("delete", new NumberValidator());

validators.get("save"); // { RequiredValidator, StringValidator }
validators.get("foo");  // empty List (not null)
validators.values();    // { RequiredValidator, StringValidator, NumberValidator }


java.util.concurrent

不是每个人都需要这么重的java.util.concurrent,但是很好用:

// a map that may be modified (by the same or different thread) while being iterated
Map<String, Something> repository = new ConcurrentHashMap<String, Something>();

// same with lists. This one is only available with Java 6
List<Something> list = new CopyOnWriteArrayList<Something>();


你有好的工具推荐吗?欢迎留言。
来自: java.dzone.com
43
20
评论 共 41 条 请登录后发表评论
21 楼 yourgame 2008-11-06 11:16
ray_linn 写道

几个helper类,也能叫顶级工具箱?

莫非你有真的顶级工具箱? 共享共享撒
20 楼 hantsy 2008-11-04 21:48
Spring 中也有些工具,很多是Commons 项目的改写。
19 楼 haoyy 2008-11-03 13:37
StringUitls -- > StringUtils
18 楼 AllenZhang 2008-11-03 12:48
EXvision 写道

Clayz 写道
其实类似StringUtils之类的,完全可以没事的时候自己写一个。每个程序员,都应该有自己的常用代码库的。

有现成的不用非要自己写干嘛,强烈喜欢apache commons的东西。

因为StringUtils之类的东西,永远不够用。
17 楼 xyh 2008-11-03 11:34
楼主的标题写错了把
“顶级”不恰当,楼主举出的不过是两三个普通工具类
"工具"也不恰当,程序员的工具一般是指开发工具把,比如Eclipse,DW
16 楼 fxbird 2008-11-03 09:50
谢谢分享啊,有空研究一下,文件读写太缺乏常用的类了,连复制、删除文件夹这样的常用功能都没有。
15 楼 wangjinpeng 2008-11-03 09:29
我还以为来发自己写的lib或者util。 典型一标题党。。。
14 楼 rockjava 2008-11-03 09:07
Apache Jakarta commons-lang有很多好用的东东。呵呵。
13 楼 Emilie 2008-11-03 08:50
我的常用工具: C, JAVA, PYTHON
12 楼 slaser 2008-11-03 08:50
StringUtil我喜欢,哈哈!
11 楼 black.angel 2008-11-03 08:46
  
10 楼 EXvision 2008-11-03 08:38
Clayz 写道

其实类似StringUtils之类的,完全可以没事的时候自己写一个。每个程序员,都应该有自己的常用代码库的。

有现成的不用非要自己写干嘛,强烈喜欢apache commons的东西。
9 楼 cats_tiger 2008-11-02 20:57
Spring的uitl包里面也有很多方便的类。
8 楼 realvalkyrie 2008-11-02 19:31
两个是APACHE的,一个是GOOGLE的,谢谢楼主啊。
7 楼 ray_linn 2008-11-02 15:45
几个helper类,也能叫顶级工具箱?
6 楼 elgs 2008-11-02 15:35
很不错,谢谢。
5 楼 feng_gladys 2008-11-02 14:44
hongliang 写道

这篇新闻里说的StringUtils应该是Apache Jakarta commons-lang里面的一个类吧,commons-lang里还有不少有用的东西,比如NumberUtils


re,Apache Jakarta commons 有很多包工具。

涉及很多方面
4 楼 huangshs8405 2008-11-02 14:06
public
3 楼 phiyano 2008-11-02 13:52
你说的这些不是工具吧,叫常用包差不多。
2 楼 Clayz 2008-11-02 13:46
其实类似StringUtils之类的,完全可以没事的时候自己写一个。
每个程序员,都应该有自己的常用代码库的。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics