
Guava
Xucc_
这个作者很懒,什么都没留下…
展开
-
什么是Guava
0. 什么是Guavaguava不是一个框架,是一个谷歌的类库,其内提供了大量的方法。早期是高并发的一个类库,后期进行了扩充。1. maven项目导入guava依赖<dependencies> <!--guava依赖--> <dependency> <groupId>com.google...原创 2019-06-20 10:12:18 · 7057 阅读 · 1 评论 -
Guava Predicate&Predicates源码分析
Predicate断言,判断一个对象是否满足一定条件。package com.google.common.base;@FunctionalInterface@GwtCompatiblepublic interface Predicate<T> extends java.util.function.Predicate<T> { @CanIgnoreRet...原创 2019-07-03 12:43:36 · 695 阅读 · 0 评论 -
Guava Supplier&Suppliers 源码分析
SupplierGuava Functional中的Supplier是通过给定的类型返回一个对象或者创建对象,即用作创建对象。package com.google.common.base;@GwtCompatible@FunctionalInterfacepublic interface Supplier<T> extends java.util.function.Supp...原创 2019-07-03 12:42:16 · 966 阅读 · 0 评论 -
Guava Function&Functions 源码分析
Functional Programming函数式编程强调使用函数来实现其目标或者改变其状态。Guava为了支持函数式编程提供了三个类Predicate、Function、Supplier。Function输入一个input,输出一个output。为了兼容Java8,也继承了Java的Function接口。Function接口中有两个方法,主要对apply方法进行研究。package ...原创 2019-07-03 12:40:33 · 579 阅读 · 0 评论 -
Guava CharMatcher 源码分析
CharMatcherCharMatcher提供了多种对字符串处理的方法,大概分为找到匹配的字符串和处理匹配的字符串两种。其中内部实现了大量的公用内部类,用来方便用户对字符串进行匹配,并且实现了大量处理字符串的方法。CharMatcher本身是一个抽象类,也有一些抽象方法,它主要依靠内部继承ChatMatcher的内部子类来是想抽象方法和重写一些方法。1. 内部实现类CharMatcher...原创 2019-07-03 12:36:00 · 367 阅读 · 0 评论 -
Guava Charsets 源码分析
Charsets定义了一些编码字符集。Guava Charsets底层使用了Charset.forName。@GwtCompatible(emulated = true)public final class Charsets { private Charsets() {} @GwtIncompatible // Charset not supported by GWT ...原创 2019-07-03 12:34:45 · 367 阅读 · 0 评论 -
Guava Strings 源码分析
StringsStirngs是Guava对字符串操作提供的一些支持。// 将null转为空字符串,不为null返回源字符串public static String nullToEmpty(@Nullable String string) { return (string == null) ? "" : string;}// 将空字符串转为null,不为空返回源字符串@Null...原创 2019-07-03 12:33:32 · 278 阅读 · 0 评论 -
Guava Objects、MoreObjects、ComparisonChain
IDEA可以直接生成简单的toString、hashCode以及equals方法,但有的时候是不够的。Commonclipse,生成hashcode、equals方法的插件。Guava对toStirng、hashCode、equals方法进行了支持,使得自定义变得更简单。ObjectsGuava中的Objects类可以进行equals、hashCode方法的自定义。package com...原创 2019-06-20 10:19:11 · 486 阅读 · 0 评论 -
Guava Preconditions
Preconditions断言,相同的还有Objects、Java assert key word、hamcrest。使用构造方法构造私有,与Joiner、Splitter不同,Preconditions提供了大量的静态方法,直接类名.方法名调用节课,不需要获取Preconditions对象。private Preconditions() {}其他方法checkArgume...原创 2019-06-20 10:17:11 · 566 阅读 · 0 评论 -
Guava Splitter,Splitter与Java split的对比
SplitterJava提供的字符串分割方法split,split源码分析如下。public String[] split(String regex, int limit) { char ch = 0; // 1. 如果regex只有一位且regex不是列出来的这些特殊字符".$|()[{^?*+\\" // 2. 如果regex只有两位且第一位为转义字符,第二位字符小于0或者大于9并且...原创 2019-06-20 10:16:20 · 3700 阅读 · 1 评论 -
Guava Joiner
JoinerJoiner可以将一系列的字符串用指定的分隔符进行拼接。使用构造方法Joiner的构造方法都是私有的,需要使用其提供的静态方法获取对象。// 私有构造方法private Joiner(String separator) { this.separator = checkNotNull(separator); }private Joiner(Joiner pr...原创 2019-06-20 10:13:38 · 573 阅读 · 0 评论 -
Guava Stopwatch源码分析
Stopwatch很多library都有类似Stopwatch的实现,用来计算经过的时间,相当于一个计时器。package com.google.common.base;@GwtCompatible(emulated = true)public final class Stopwatch { private final Ticker ticker; // 是否运行,start方...原创 2019-07-04 11:19:14 · 766 阅读 · 1 评论