亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

guava 實(shí)用操作集合

系統(tǒng) 2183 0

guava 是 google 幾個(gè)java核心類庫(kù)的集合,包括集合、緩存、原生類型、并發(fā)、常用注解、基本字符串操作和I/O等等。?
???
?? 大家平時(shí)經(jīng)常遇到某些相同的問(wèn)題,自己寫代碼也都能解決。但是久而久之會(huì)感覺到很痛苦,因?yàn)槲覀円欢伲俣闹貜?fù)發(fā)明輪子。為了不再忍受痛苦,也許我們可以總結(jié)自己的類庫(kù),但是新的問(wèn)題來(lái)了。自己總結(jié)的類庫(kù)很難與大家分享,不能幫助到更多人。同時(shí)自己的類庫(kù)要不斷的進(jìn)行維護(hù)。guava 正是出于這樣的目的而來(lái)的。?

?? 只說(shuō)不練不行啊,讓我們舉上一兩個(gè)例子?
判斷 String不為null,且不為空 ?

Java代碼?? 收藏代碼
  1. String?str=...;??
  2. //use?java ??
  3. if (str?!= null ?&&?!str.isEmpty()){??
  4. ???? //do?something ??
  5. }??
  6. ??
  7. ??
  8. //use?guava ??
  9. if (!Strings.isNullOrEmpty(str)){??
  10. ???? //do?something ??
  11. }??

上而的例子還不是很給力,讓我們舉一個(gè)更給力的例子。 復(fù)制文件 ?
Java代碼?? 收藏代碼
  1. File?from=...;??
  2. File?to=...;??
  3. ??
  4. //use?java ??
  5. FileInputStream?in= new ?FileInputStream(from);??
  6. FileOutputStream?out= new ?FileOutputStream(to);??
  7. byte []?buff= new ? byte [ 1024 ];??
  8. int ?readLength=- 1 ;??
  9. while ((readLength?=?in.read(buff))?>? 0 ){??
  10. ????out.write(buff,? 0 ,?readLength);??
  11. }??
  12. in.close();??
  13. out.close();??
  14. ??
  15. //use?guava ??
  16. Files.copy(from,to);? //注意,只用了一行代碼噢 ??


??? 通過(guò)上面的例子,已經(jīng)能感覺到guava的強(qiáng)大。接下來(lái),讓我們更深入看看guava的其他功能。 guava(r09-api) 分為這幾個(gè)包?
  • base ????????????? 基本的工具類與接口
  • io ???????????????? io流相關(guān)的工具類與方法
  • net ?????????????? 網(wǎng)絡(luò)地址相關(guān)的工具類與方法
  • primitives ??????? 原始類型的工具類
  • collect ?????????? 通用集合接口與實(shí)現(xiàn),與其集合相關(guān)工具類
  • util.concurrent ?并發(fā)相關(guān)工具類


base ?

字符串相關(guān)工具類 ?
Strings ?
Java代碼?? 收藏代碼
  1. public ? class ?StringsTest?{??
  2. ???? @Test ??
  3. ???? public ? void ?test()?{??
  4. ???????? //將空字符串轉(zhuǎn)換為null ??
  5. ????????Assert.assertEquals( null ,?Strings.emptyToNull( "" ));??
  6. ???????? //將null轉(zhuǎn)換為空字符串 ??
  7. ????????Assert.assertEquals( "" ,?Strings.nullToEmpty( null ));??
  8. ???????? //判斷字符串為null或者為空 ??
  9. ????????Assert.assertTrue(Strings.isNullOrEmpty( "" )?&&?Strings.isNullOrEmpty( null ));??
  10. ???????? //將字符串重復(fù) ??
  11. ????????Assert.assertEquals( "javajavajava" ,?Strings.repeat( "java" ,? 3 ));??
  12. ????}??
  13. }??


CharMatcher ?
Java代碼?? 收藏代碼
  1. public ? class ?CharMatcherTest?{??
  2. ???? @Test ??
  3. ???? public ? void ?test()?{??
  4. ????????String?source?=? "a1b2c3" ;??
  5. ????????CharMatcher?matcher?=?CharMatcher.DIGIT;? //預(yù)定義的?DIGIT?類型 ??
  6. ????????Assert.assertTrue(mathcer.match( '8' ));??
  7. ????????Assert.assertEquals( "123" ,?matcher.retainFrom(source));??
  8. ????????Assert.assertEquals( 3 ,?matcher.countIn(source));??
  9. ????????Assert.assertEquals( "abc" ,?matcher.removeFrom(source));??
  10. ????????Assert.assertEquals( "a2b3c" ,?matcher.trimFrom( "1a2b3c4" ));??
  11. ????}??
  12. }??

Jioner ?
Java代碼?? 收藏代碼
  1. public ? class ?JoinerTest?{??
  2. ???? @Test ??
  3. ???? public ? void ?test()?{??
  4. ????????Assert.assertEquals( "2011-08-04" ,?Joiner.on( "-" ).join( "2011" ,? "08" ,? "04" ));??
  5. ????}??
  6. }??


Splitter ?
Java代碼?? 收藏代碼
  1. public ? class ?SplitterTest?{??
  2. ???? @Test ??
  3. ???? public ? void ?test()?{??
  4. ????????Splitter.on( ',' ).split( "a,b" );? //結(jié)果返回Iterable<String>,包含?"a"?and?"b" ??
  5. ???????? //將結(jié)果中的元素trim ??
  6. ???????? //結(jié)果依然包含??"a"?和?"b"?,而不是?"a?"?和?"?b" ??
  7. ????????Splitter.on( ',' ).trimResults().split( "a?,?b" );???
  8. ???????? //忽略空字符串 ??
  9. ???????? //結(jié)果必須是"a"?和?"b",而不是?"a"?,""?和?"b" ??
  10. ????????Splitter.on( ',' ).omitEmptyStrings().split( "a,,b" );???
  11. ????}??
  12. }??


CaseFormat ?
Java代碼?? 收藏代碼
  1. public ? class ?CaseFormatTest?{??
  2. ??
  3. ???? @Test ??
  4. ???? public ? void ?test()? throws ?IOException?{??
  5. ???????? //?helloGuava?=>?HELLO_GUAVA ??
  6. ????????Assert.assertEquals( "HELLO_GUAVA" ,?CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE,? "helloGuava" ));??
  7. ???????? //?hello-guava?=>?HelloGuava ??
  8. ????????Assert.assertEquals( "HelloGuava" ,?CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL,? "hello-guava" ));??
  9. ????}??
  10. }??


其他 ?
Preconditions ?
有些方法在執(zhí)行前,先要檢查傳入的參數(shù)是否正確,或者類的狀態(tài)是否正確。通常會(huì)這樣做
Java代碼?? 收藏代碼
  1. if ?(count?<=? 0 )?{??
  2. ??????? throw ? new ?IllegalArgumentException( "must?be?positive:?" ?+?count);??
  3. }??

guava就可以這樣,達(dá)到相同的效果?
Java代碼?? 收藏代碼
  1. Preconditions.checkArgument(count?>? 0 ,? "must?be?positive:?%s" ,?count);??


I/O ?
ByteStreams 提供了針對(duì)字節(jié)流的工具方法?
Java代碼?? 收藏代碼
  1. InputStream?from=...;??
  2. OutputStream?to=...;??
  3. ByteStreams.copy(from,to);? //復(fù)制 ??


CharStreams 提供了針對(duì)字符流的工具方法?
Java代碼?? 收藏代碼
  1. Reader?from?=...;??
  2. Writer?to?=...;??
  3. CharStreams.copy(from,?to);? //復(fù)制 ??


Files 提供了針對(duì)文件的工具方法?
Java代碼?? 收藏代碼
  1. File?from=...;??
  2. File?to=...;??
  3. Files.copy(from,?to);? //復(fù)制 ??

Java代碼?? 收藏代碼
  1. Files.deleteDirectoryContents(File?directory);? //刪除文件夾下的內(nèi)容(包括文件與子文件夾) ??
  2. Files.deleteRecursively(File?file);? //刪除文件或者文件夾 ??
  3. Files.move(File?from,?File?to);? //移動(dòng)文件 ??


Resources 提供了針對(duì)classpath下資源操作的工具方法?
Java代碼?? 收藏代碼
  1. URL?url?=?Resources.getResource( "config.xml" );? //獲取classpath根下的config.xml文件url ??

guava 實(shí)用操作集合


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产一级爱 | 国产精品色| 天天干天天爽天天操 | 国产精品久久久久一区二区三区 | 在线播放亚洲视频 | 久久机热re这里只有精品15 | 玖玖福利| 中文字幕精品一区 | 国产精品一区二区三区四区五区 | 狠狠操天天爱 | 国产自产视频 | 爱爱免费网址 | 免费看国产一级特黄aa大片 | 热99re久久精品这里都是免费 | 久久中文字幕不卡一二区 | 久久青草免费91观看 | 国产伦精品一区二区三区视频小说 | 国产精品青草久久久久婷婷 | 日韩a一级欧美一级在线播放 | 久久这里精品青草免费 | 毛片1级| 99久久精品视香蕉蕉er热资源 | 天天躁日日2018躁狠狠躁 | 欧洲免费无线码二区5 | 国产第一页精品 | 性久久久久久久久久 | 久久www视频| 亚洲天天网综合自拍图片专区 | 国产做受视频激情播放 | 岛国三级视频 | 香蕉久久成人网 | 日日射天天射 | 国产18到20岁美女毛片 | 在线观看国产欧美 | 久久伊人草 | 久草国产视频 | 超乳w真性中出し冲田杏梨101 | 国产自愉怕一区二区三区 | 亚洲精品国产啊女成拍色拍 | 国产91久久精品一区二区 | 久久久久综合网 |