logo资料库

apache commons 文档.pdf

第1页 / 共63页
第2页 / 共63页
第3页 / 共63页
第4页 / 共63页
第5页 / 共63页
第6页 / 共63页
第7页 / 共63页
第8页 / 共63页
资料共63页,剩余部分请下载后查看
1. 概述
2. Commons Lang
2.1. commons.lang包
2.1.1. ArrayUtils
2.1.2. StringUtils
2.1.3. BitField
2.1.4. BooleanUtils
2.1.5. CharRange
2.1.6. CharUtils
2.1.7. ClassUtils
2.1.8. ObjectUtils
2.1.9. RandomStringUtils
2.1.10. SerializationUtils
2.1.11. StringEscapeUtils
2.1.12. SystemUtils
2.1.13. Validate
2.1.14. WordUtils
2.2. commons.lang.builder包
2.2.1. CompareToBuilder
2.2.2. EqualsBuilder
2.2.3. HashCodeBuilder
2.2.4. ToStringBuilder
2.2.5. ToStringStyle和StandardToStringStyle
2.3. commons.lang.math包
2.4. commons.lang.time包
2.4.1. DateFormatUtils
2.4.2. DateUtils
2.4.3. DurationFormatUtils
2.4.4. SimpleDateFormat
2.4.5. StopWatch
2.5. commons.lang.enums包
2.6. commons.lang.exception包
2.7. commons.lang.mutable包
3. Commons BeanUtils
3.1. commons.beanutils包
3.1.1. BeanUtils
3.1.2. BeanUtilsBean
3.1.3. PropertyUtils
3.1.4. PropertyUtilsBean
3.1.5. ConvertUtils
3.1.6. ConvertUtilsBean
3.1.7. ConstructorUtils
3.1.8. MethodUtils
3.1.9. DynaBean/DynaClass/DynaProperty
3.1.10. BasiceDyanBean/BasicDynaClass
3.1.11. WrapDynaBean/WrapDynaClass/ConvertingWrapDynaBean
3.1.12. JDBCDynaClass/ResultSet/ResultSetIterator/RowSet
3.1.13. LazyDynaBean/LazyDynaClass/LazyDynaMap
4. Commons Collections
4.1. commons.collections.bag
4.2. commons.collections.buffer
4.3. commons.collections.bidimap
4.4. Comparator组
4.5. 算子组
4.5.1. Predicate
4.5.2. Transformer
4.5.3. Closure
4.5.4. Factory
4.6. Collections组
4.6.1. FastArrayList/FastHashMap/FastTreeMap
4.6.2. ExtendedProperties
4.6.3. BoundedCollection/BoundedMap
4.6.4. MultiKey
4.7. Map组
4.7.1. MultiMap
4.7.2. BeanMap
4.7.3. LazyMap
4.7.4. CaseInsensitiveMap
4.7.5. IdentityMap
4.7.6. LRUMap
4.7.7. MultiKeyMap
4.7.8. ReferenceMap/ReferenceIdentityMap
4.7.9. SingletonMap
4.8. List组
4.8.1. CursorableLinkedList
4.8.2. FixedSizeList
4.8.3. LazyList
4.8.4. NodeCachingLinkedList
4.8.5. TreeList
5. Commons Codec
5.1. commons.codec.binary
5.1.1. Base64
5.1.2. Hex
5.1.3. BinaryCodec
5.2. commons.codec.digest
5.2.1. DigestUtil
6. Commons Betwixt
7. Commons Digester
8. Commons CLI
9. Commons Discovery
Jakarta Commons 学习 2.1. 1. 概述...........................................................................................................................................4 2. Commons Lang.........................................................................................................................4 commons.lang 包 ..........................................................................................................4 2.1.1. ArrayUtils..........................................................................................................5 2.1.2. StringUtils .........................................................................................................7 2.1.3. BitField............................................................................................................10 2.1.4. BooleanUtils....................................................................................................10 2.1.5. CharRange.......................................................................................................10 2.1.6. CharUtils .........................................................................................................11 2.1.7. ClassUtils ........................................................................................................11 2.1.8. ObjectUtils ......................................................................................................11 2.1.9. RandomStringUtils..........................................................................................12 2.1.10. SerializationUtils.............................................................................................12 2.1.11. StringEscapeUtils............................................................................................12 2.1.12. SystemUtils.....................................................................................................12 2.1.13. Validate ...........................................................................................................12 2.1.14. WordUtils........................................................................................................13 commons.lang.builder 包............................................................................................13 2.2.1. CompareToBuilder..........................................................................................16 2.2.2. EqualsBuilder..................................................................................................16 2.2.3. HashCodeBuilder ............................................................................................17 2.2.4. ToStringBuilder...............................................................................................18 2.2.5. ToStringStyle 和 StandardToStringStyle.........................................................18 commons.lang.math 包 ...............................................................................................19 commons.lang.time 包 ................................................................................................21 DateFormatUtils..............................................................................................23 DateUtils .........................................................................................................23 DurationFormatUtils .......................................................................................23 SimpleDateFormat ..........................................................................................24 StopWatch .......................................................................................................24 commons.lang.enums 包............................................................................................24 commons.lang.exception 包........................................................................................24 commons.lang.mutable 包 ..........................................................................................24 3. Commons BeanUtils ...............................................................................................................24 commons.beanutils 包.................................................................................................25 3.1.1. BeanUtils.........................................................................................................25 3.1.2. BeanUtilsBean.................................................................................................28 3.1.3. PropertyUtils ...................................................................................................29 3.1.4. PropertyUtilsBean...........................................................................................29 3.1.5. ConvertUtils ....................................................................................................29 3.1.6. ConvertUtilsBean............................................................................................30 3.1.7. ConstructorUtils ..............................................................................................30 3.1.8. MethodUtils.....................................................................................................31 3.1.9. DynaBean/DynaClass/DynaProperty ..............................................................32 3.1.10. BasiceDyanBean/BasicDynaClass ..................................................................32 3.1.11. WrapDynaBean/WrapDynaClass/ConvertingWrapDynaBean........................33 3.1.12. JDBCDynaClass/ResultSet/ResultSetIterator/RowSet....................................33 3.1.13. LazyDynaBean/LazyDynaClass/LazyDynaMap.............................................35 4. Commons Collections.............................................................................................................36 commons.collections.bag ............................................................................................37 commons.collections.buffer ........................................................................................38 commons.collections.bidimap.....................................................................................39 2.4.1. 2.4.2. 2.4.3. 2.4.4. 2.4.5. 4.1. 4.2. 4.3. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 3.1.
4.5.1. 4.5.2. 4.5.3. 4.5.4. 4.4. Comparator 组.............................................................................................................40 4.5. 算子组.........................................................................................................................41 Predicate..........................................................................................................44 Transformer.....................................................................................................45 Closure ............................................................................................................46 Factory ............................................................................................................46 4.6. Collections 组 .............................................................................................................47 FastArrayList/FastHashMap/FastTreeMap .....................................................47 4.6.1. ExtendedProperties .........................................................................................47 4.6.2. 4.6.3. BoundedCollection/BoundedMap...................................................................50 4.6.4. MultiKey .........................................................................................................50 4.7. Map 组 ........................................................................................................................51 4.7.1. MultiMap.........................................................................................................51 BeanMap .........................................................................................................51 4.7.2. LazyMap .........................................................................................................52 4.7.3. CaseInsensitiveMap ........................................................................................53 4.7.4. 4.7.5. IdentityMap.....................................................................................................53 4.7.6. LRUMap .........................................................................................................53 4.7.7. MultiKeyMap..................................................................................................53 ReferenceMap/ReferenceIdentityMap ............................................................54 4.7.8. 4.7.9. SingletonMap ..................................................................................................54 List 组 .........................................................................................................................54 CursorableLinkedList......................................................................................54 FixedSizeList...................................................................................................54 LazyList...........................................................................................................54 NodeCachingLinkedList .................................................................................55 TreeList ...........................................................................................................55 5. Commons Codec.....................................................................................................................55 commons.codec.binary................................................................................................56 Base64.............................................................................................................56 Hex..................................................................................................................56 BinaryCodec....................................................................................................57 commons.codec.digest ................................................................................................57 DigestUtil ........................................................................................................57 6. Commons Betwixt...................................................................................................................58 7. Commons Digester..................................................................................................................59 8. Commons CLI.........................................................................................................................62 9. Commons Discovery...............................................................................................................63 4.8.1. 4.8.2. 4.8.3. 4.8.4. 4.8.5. 5.1.1. 5.1.2. 5.1.3. 5.2.1. 4.8. 5.1. 5.2.
1. 概述 可重用性是 Jakarta Commons 项目的灵魂所在。这些包在设计阶段就已经考虑了可重用 性问题。其中一些包,例如 Commons 里面用来记录日志的 Logging 包,最初是为其他项目 设计的,例如 Jakarta Struts 项目,当人们发现这些包对于其他项目也非常有用,能够极大地 帮助其他项目的开发,他们决定为这些包构造一个"公共"的存放位置,这就是 Jakarta Commons 项目。 为了真正提高可重用性,每一个包都必须不依赖于其他大型的框架或项目。因此, Commons 项目的包基本上都是独立的,不仅是相对于其他项目的独立,而且相对于 Commons 内部的大部分其他包独立。虽然存在一些例外的情况,例如 Betwixt 包要用到 XML API,但 绝大部分只使用最基本的 API,其主要目的就是要能够通过简单的接口方便地调用。 2. Commons Lang 2.1. commons.lang 包 Lang 包提供了一些有用的包含 static 方法的 Util 类。除了 6 个 Exception 类和 2 个已经 deprecated 的数字类之外,commons.lang 包共包含了 17 个实用的类: ArrayUtils BitField BooleanUtils CharEncoding CharRange CharSet CharSetUtils CharUtils ClassUtils ObjectUtils 用于对数组的操作,如添加、查找、删除、子数组、倒序、元 素类型转换等 用于操作位元,提供了一些方便而安全的方法 用于操作和转换 boolean 或者 Boolean 及相应的数组 包含了 Java 环境支持的字符编码,提供是否支持某种编码的判 断 用于设定字符范围并做相应检查 用于设定一组字符作为范围并做相应检查 用于操作 CharSet 用于操作 char 值和 Character 对象 用于对 Java 类的操作,不使用反射 用于操作 Java 对象,提供 null 安全的访问和其他一些功能 RandomStringUtils 用于生成随机的字符串 SerializationUtils 用于处理对象序列化,提供比一般 Java 序列化更高级的处理能 力
StringEscapeUtils 用于正确处理转义字符,产生正确的 Java、JavaScript、HTML、 StringUtils SystemUtils Validate WordUtils XML 和 SQL 代码 处理 String 的核心类,提供了相当多的功能 在 java.lang.System 基础上提供更方便的访问,如用户路径、Java 版本、时区、操作系统等判断 提供验证的操作,有点类似 assert 断言 用于处理单词大小写、换行等 2.1.1.ArrayUtils 给 int[],String[] 等 基本 类型或 基本 包装 类型 的 Array 加 上类 似 CollectionsAPI 提 供 的 add,remove,reverse,subarray, indexOf, lastIndexOf, isEmpty, clone,把 null 认为是空数组 参数 说明 在数组的某个位置或者最后插入一个值, 相当于对 System.arraycopy 做了个封装(数 组可以是 null) 两 个 同 类 型 数 组 叠 加 , 相 当 于 对 System.arraycopy 做了个封装(数组可以是 null) 拷贝一个数组(数组可以是 null) 检查值是否在数组内,数组可以是 null, 值如果是 null,则查数组内为 null 这一项 得到数组长度(数组可以是 null) 搜索数组的值(数组可以是 null) 检查数组为 null 或为空 比较两个数组中的内容,支持多维数组 两个数组长度是否相等,null 被视作空数 组 从下往上找搜索数组的值 (数组可以是 null) 删除数组中某个位置的值 删除数组中第一个匹配的值 反转数组 取得数组的一部分 将多维数组转为 map,第一维为 key,第二 维为 value 函数 add add(Object[] array, int index, Object element) add(Object[] array, Object element) addAll addAll(Object[] array1, Object[] array2) clone contains getLength indexOf isEmpty isEquals isSameLength lastIndexOf remove removeElement reverse subarray toMap clone(Object[] array) contains (Object[] array, Object objectToFind) getLength(Object array) indexOf(Object[] array, Object objectToFind) indexOf(Object[] array, int startIndex) isEmpty(Object[] array) isEquals(Object array1, Object array2) isSameLength(Object[] array1, Object[] array2) Object objectToFind, lastIndexOf(Object[] array, Object objectToFind) lastIndexOf(Object[] array, Object objectToFind, int startIndex) remove(Object[] array, int index) removeElement(Object[] array, Object element) reverse(Object[] array) subarray(Object[] array, int endIndexExclusive) toMap(Object[] array) Map colorMap = Array.toMap(new String[][] {{ int startIndexInclusive,
toObject toPrimitive toString {"RED", "#FF0000"}, {"BLUE", "#0000FF"}}); toString(Object array) toString(Object array, String stringIfNull) 将 int 数组转成 Integer 数组, 将 Integer 数组转成 int 数组 将数组转换成类似{a,b}文本 这段代码说明了我们可以如何方便的利用 ArrayUtils 类帮我们完成数组的打印、查找、克隆、 倒序、以及值型/对象数组之间的转换等操作。 // data setup int[] intArray1 = { 2, 4, 8, 16 }; int[][] intArray2 = { { 1, 2 }, { 2, 4 }, { 3, 8 }, { 4, 16 } }; package sean.study.jakarta.commons.lang; import java.util.Map; import org.apache.commons.lang.ArrayUtils; public class ArrayUtilsUsage { public static void main(String[] args) { Object[][] notAMap = { { "A", new Double(100) }, { "B", new Double(80) }, { "C", new Double(60) }, { "D", new Double(40) }, { "E", new Double(20) } }; // printing arrays System.out.println("intArray1: " + ArrayUtils.toString(intArray1)); System.out.println("intArray2: " + ArrayUtils.toString(intArray2)); System.out.println("notAMap: " + ArrayUtils.toString(notAMap)); // finding items System.out.println("intArray1 contains '8'? " + ArrayUtils.contains(intArray1, 8)); System.out.println("intArray1 index of '8'? " + ArrayUtils.indexOf(intArray1, 8)); System.out.println("intArray1 last index of '8'? " + ArrayUtils.lastIndexOf(intArray1, 8)); // cloning and resversing int[] intArray3 = ArrayUtils.clone(intArray1); System.out.println("intArray3: " + ArrayUtils.toString(intArray3)); ArrayUtils.reverse(intArray3); System.out.println("intArray3 reversed: "
+ ArrayUtils.toString(intArray3)); // primitive to Object array Integer[] integerArray1 = ArrayUtils.toObject(intArray1); System.out.println("integerArray1: " + ArrayUtils.toString(integerArray1)); // build Map from two dimensional array Map map = ArrayUtils.toMap(notAMap); Double res = (Double) map.get("C"); System.out.println("get 'C' from map: " + res); } } 以下是运行结果: intArray1: {2,4,8,16} intArray2: {{1,2},{2,4},{3,8},{4,16}} notAMap: {{A,100.0},{B,80.0},{C,60.0},{D,40.0},{E,20.0}} intArray1 contains '8'? true intArray1 index of '8'? 2 intArray1 last index of '8'? 2 intArray3: {2,4,8,16} intArray3 reversed: {16,8,4,2} integerArray1: {2,4,8,16} get 'C' from map: 60.0 2.1.2.StringUtils StringUtils 类具有简单而强大的处理能力,从检查空串(对 null 的情况处理很得体),到分 割子串,到生成格式化的字符串,使用都很简洁,也很直截了当。 IsEmpty/IsBlank Trim/Strip Equals if a checks String contains text removes leading and trailing whitespace two ompares strings null-safe
IndexOf/LastIndexOf/Contains IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut null-safe index-of checks index-of any of a set of Strings ContainsOnly/ContainsNone Substring/Left/Right/Mid SubstringBefore/SubstringAfter/SubstringBetween Split/Join Remove/Delete Replace/Overlay Chomp/Chop LeftPad/RightPad/Center/Repeat UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize CountMatches IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable DefaultString String of does contains only/none these characters null-safe substring extractions substring extraction relative other strings to splits a String into an array of substrings and vice versa removes part of a String Searches String replaces String another a and one with removes the last part of a String pads a String changes the case of a String the counts number of occurrences of one String in another checks the characters in a String protects against a null input String
Reverse/ReverseDelimited Abbreviate Difference LevensteinDistance reverses String a abbreviates string ellipsis a using two compares and Strings reports on their differences the number of changes needed to change one String into another 处理 String 的原则: null empty space whitespace trim null a zero-length string ("") the space character (' ', char 32) the characters defined by Character.isWhitespace(char) the characters <= 32 as in String.trim() 从下面代码中我们可以大致了解到这个 StringUtils 类简单而强大的处理能力,从检查空串 (对 null 的情况处理很得体),到分割子串,到生成格式化的字符串,使用都很简洁,也很 直截了当。 package sean.study.jakarta.commons.lang; import org.apache.commons.lang.StringUtils; public class StringUtilsAndWordUtilsUsage { public static void main(String[] args) { // data setup String str1 = ""; String str2 = " "; String str3 = "\t"; String str4 = null; String str5 = "123"; String str6 = "ABCDEFG"; String str7 = "It feels good to use Jakarta Commons.\r\n"; // check for empty strings
分享到:
收藏