Guava学习(一)

如何成为一名合格的程序员

重新对程序员有了理解,  合格的程序员不仅要求有专业的代码能力,  还需要1.良好的沟通能力  2.高的做事效率   3.每天尽量多做一些事情,努力多成长一点.

今天遇到的问题

1.学习了Logback 和 SLF4J 的使用. 怎么选择合适的日志级别?

ERROT:  说明这个地方有错误,必须马上处理。

WARN:可以容忍这些信息,但应该尽快检查及修复。

INFO: 可以说明应用程序的运行过程。

DEBUG  :开发多用debug ,  会继续执行后面的流程。

TRACE:  只是开发阶段使用。这些日志记录只是临时性的,最终应该关掉。DEBUG和TRACE的区别很难区分,不过如果加了一行日志,在开发测试完后又删了它的话,这条日志就应该是TRACE级别的。

2.总结昨天作业遇到的问题

2.1 输入文件应该放在resource文件中    获取文件路径采用 this.getClass().getResource("/").getPath()

2.2 依赖的版本应该在 标签中管理

<properties>

<target.version>2.5.6target.version>

properties>

<dependencyManagement>

<dependencies>

<dependency>

<groupId>your groupIdgroupId>

<artifactId>your artifactIdartifactId>

<version>$

{target.version}

version>

dependency>

dependencies>

dependencyManagement>

2.3 封装了FileUtil类.     方法尽量只做一件事情, 少用static 最好有返回值.  切记 !

阅读Guava源码:Optional & Present & Absent

简介:Guava库设计了Optional来解决null的问题。而Present Absent 均为final class 继承自Optional .

若T类型数据可以为null,Optional是用来以非空值替代T数据类型的一种方法。

Optional 怎么做到 非空值代替T类型呢?

通过下面源码发现,Optional初始化时即new一个Present来将传递的引用类型返回!使用了Preconditions的checkNotNull来保证参数不为 null!final class Present extends Optional {

private final T reference;

Present(T reference)

{ this.reference = reference; }

public static T checkNotNull(T reference, @Nullable Object errorMessage) {

if (reference == null)

{ throw new NullPointerException(String.valueOf(errorMessage)); }

return reference;

}

final class Absent extends Optional {

static final Absent INSTANCE = new Absent();

static Optional withType()

{ return (Optional) INSTANCE; }

那么当我确实需要使用null的时候应该怎么使用optional ?

方案:可以调用Optional.absent()方法

从以下源码中可以看出Absent创建时并没有像Present通过Preconditions 检查引用是否为空!

public static Optional absent() {

return Absent.withType();

}

static final Absent INSTANCE = new Absent();

@SuppressWarnings("unchecked") // implementation is "fully variant"

static Optional withType() {

return (Optional) INSTANCE;

}通过两个final class来实现Optional 在两种不同情景下的功能,而且编译器在遇到调用final方法的时候会转入内嵌机制,执行效率较高.

笔记:

1.常用静态方法:

Optional.of(T):获得一个Optional对象,其内部包含了一个非null的T数据类型实例,若T=null,则立刻报错。

Optional.absent():获得一个Optional对象,其内部包含了空值

Optional.fromNullable(T):将一个T的实例转换为Optional对象,T的实例可以不为空,也可以为空[Optional.fromNullable(null),和Optional.absent()等价。

2.实例方法:

1. boolean isPresent():如果Optional包含的T实例不为null,则返回true;若T实例为null,返回false

2. T get():返回Optional包含的T实例,该T实例必须不为空;否则,对包含null的Optional实例调用get()会抛出一个IllegalStateException异常

3. T or(T):若Optional实例中包含了传入的T的相同实例,返回Optional包含的该T实例,否则返回输入的T实例作为默认值

4. T orNull():返回Optional实例中包含的非空T实例,如果Optional中包含的是空值,返回null,逆操作是fromNullable()

5. Set asSet():返回一个不可修改的Set,该Set中包含Optional实例中包含的所有非空存在的T实例,且在该Set中,每个T实例都是单态,如果Optional中没有非空存在的T实例,返回的将是一个空的不可修改的Set。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容