美文网首页
Guava学习(一)

Guava学习(一)

作者: lingtongfu | 来源:发表于2016-03-01 22:59 被阅读0次

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

重新对程序员有了理解,  合格的程序员不仅要求有专业的代码能力,  还需要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。

相关文章

  • Guava 学习

    guava Splitter 学习 guava Sets 集合类取交集、差集、并集

  • 1、guava简介

    转载:Guava学习笔记:Google Guava 类库简介 Guava项目包含我们在基于Java的项目中依赖的几...

  • Guava学习笔记:Optional优雅的使用null

    Guava学习笔记:Optional优雅的使用null 在我们学习和使用Guava的Optional之前,我们需要...

  • Guava学习(一)

    Guava简单介绍 1 资料链接 极客学院http://wiki.jikexueyuan.com/project/...

  • Guava学习(一)

    如何成为一名合格的程序员 重新对程序员有了理解, 合格的程序员不仅要求有专业的代码能力, 还需要1.良好的沟通能力...

  • Guava

    1.Guava学习笔记:Google Guava 类库简介[http://www.cnblogs.com/peid...

  • Guava学习

    Google生产的工具类,目的是简化开发 Optional - 用来表示可能为null的T类型引用(增强null的...

  • Guava学习

    通过使用guava库,让代码简洁易扩展。 1、条件检查 业务代码书写过程中,各种判空和参数检查是不可避免的,重复繁...

  • Guava学习

    Guava学习笔记之Joiner ,Strings,Splitter 工具实例 一.Strings 二,Joine...

  • Guava学习

    字符串处理 Joiner是连接器,Splitter是分割器,通常我们会把它们定义为static final,利用o...

网友评论

      本文标题:Guava学习(一)

      本文链接:https://www.haomeiwen.com/subject/zkdgkttx.html