guava让java代码更优雅

目录

Guava简介

如何使用guava

使用guava的collections

使用guava的io

使用guava的Preconditions


Guava简介

Guava是一个Google的基于java1.6的类库集合的扩展项目包括collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O,等等

这些高质量的API可以使你的java代码更加优雅,更加简洁

如何使用guava

使用guava非常简单,只需在maven中写入依赖就可以:

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

<version>3.4</version>

</dependency>

使用guava的collections

 如果使用的是java1.5之前的版本,怎么new一个list?一定是这样

List<String> list = new ArrayList<String>();

如果要new一个map?

Map<String, Integer> map = new HashMap<String, Integer>();

虽然只是new一个简单的对象,但是<>里的内容显得繁琐麻烦

guava可以让我们优雅的new一个集合:

List<String> list = Lists.newArrayList();

Map<String, Integer> map = Maps.newHashMap();

当然guava提供的集合操作不仅如此,当我们往list里添加元素的时候通常如下操作:

List<Integer> list = new ArrayList<Integer>();

list.add(1);

list.add(2);

list.add(3);

但是如果我们使用了guava,则可以优雅而快速的实现:

List<Integer> list = Lists.newArrayList(1, 2, 3);

使用guavaio

Javaio类是一个让程序员头疼的事情,简单的复制文件可能需要很多行代码,guava提供了简洁优雅的实现方法:

File f1 = new File("d:\\fout.txt");

File f2 = new File("d:\\fout2.txt");

Files.copy(f1, f2);

简单三行便完成了文件的复制。

文件的移动/重命名:

File f1 = new File("d:\\fout.txt");

File f2 = new File("d:\\fout2.txt");

Files.move(f1, f2);

从文件中读取字符串

File f1 = new File("d:\\fout.txt");
List<String> readLines = Files.readLines(f1, Charsets.UTF_8);

将字符串读入到文件

String str2 = "okokokok";
Files.append(str2, f1, Charsets.UTF_8);

使用guavaPreconditions

对传入的参数做非空对象处理是一个简单但是又常见的操作,不使用guava的情况下,我们可能会这样做:

public void testGuava2(Person person) {

        if (null == person) {
            logger.error("person is null");
        }
        if (null == person.getEmail()) {
            logger.error("email is null");
        }

        //...
    }

这些判断语句影响了方法主要逻辑,影响了程序的可读性

使用了guava后,我们可以更优雅的对空对象做判断:

 public void testGuava(Person person) {

        try {

            checkNotNull(person, "person is null");

            String email = person.getEmail();

            checkNotNull(email, "email is null");

            //

        } catch (NullPointerException e) {

            System.out.println("person can not be null " + e.getMessage());

        }

    }

强烈建议将Preconditions静态导入到项目中,在静态导入后,Guava方法非常清楚明晰。checkNotNull清楚地描述做了什么,会抛出什么异常:

import static com.google.common.base.Preconditions.*;

此外在Preconditions中还提供了以下常用的方法:

checkState();

checkArgument();

Guava还有很多简洁而优雅的特性尚未介绍,在代码中使用guava会使得您的开发工作高效而美好

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值