zoukankan      html  css  js  c++  java
  • Guava入门第四章(Objects)

    Objects详细介绍


    package com.lvshihao.guava;
    
    import com.google.common.base.MoreObjects;
    import com.google.common.collect.ComparisonChain;
    import org.junit.Test;
    import java.util.Calendar;
    import com.google.common.base.Objects;
    
    import static org.hamcrest.core.IsEqual.equalTo;
    import static org.junit.Assert.assertThat;
    
    /**
     *@author: LVSHIHAO
     *@description: GUAVA Objects detailed introduction
     */
    public class ObjectsTest {
    
        static class Guava implements Comparable<Guava>{
            private final String manufacturer;
            private final String version;
            private final Calendar releaseDate;
    
            public Guava(String manufacturer, String version, Calendar releaseDate) {
                this.manufacturer = manufacturer;
                this.version = version;
                this.releaseDate = releaseDate;
            }
    
            @Override
            public String toString() {
                /**
                 * toStringHelper()toString助手,可以通过这个方法处理toString的结果
                 * The result of to String can be processed by this method
                 */
                return MoreObjects.toStringHelper(this).omitNullValues()
                        .add("manufacturer",this.manufacturer)
                        .add("version",this.version)
                        .add("releaseDate",this.releaseDate).toString();
    
            }
    
            @Override
            public boolean equals(Object o) {
                /**
                 * use Guava Objects Equal Method
                 */
                if (this == o) return true;
                if (o == null || getClass() != o.getClass()) return false;
                Guava guava = (Guava) o;
                return Objects.equal(manufacturer, guava.manufacturer) &&
                        Objects.equal(version, guava.version) &&
                        Objects.equal(releaseDate, guava.releaseDate);
            }
    
            @Override
            public int hashCode() {
                /**
                 * use Guava Objects HashCode Method
                 */
                return Objects.hashCode(manufacturer, version, releaseDate);
            }
    
            @Override
            public int compareTo(Guava o) {
                /**
                 * use Guava ComparisonChain compare Method
                 */
                return ComparisonChain.start().
                        compare(this.manufacturer,o.manufacturer)
                        .compare(this.version,o.version)
                        .compare(this.releaseDate,o.releaseDate).result();
            }
        }
    
    
        @Test
        public void testGuavaObjects() {
            Guava guava2=new Guava("alibaba","1.0.0",Calendar.getInstance());
            assertThat(guava2.toString(),equalTo("Guava{manufacturer=alibaba, version=1.0.0}"));
        }
    }
    

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------

    作者:吕世昊

    个性签名:学习如逆水行舟,不进则退!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    19年春第六周学习
    Java编程思想
    个人作业4-结对开发地铁
    Hadoop学习笔记—1.基本介绍与环境配置
    ZooKeeper学习第二期--ZooKeeper安装配置
    ZooKeeper学习第一期---Zookeeper简单介绍
    loadrunner--参数化—使用数据文件参数化
    loadrunner--analysis--图表筛选、合并、显示
    loadrunner--并发测试
    session和cookie
  • 原文地址:https://www.cnblogs.com/lvshihao/p/15160794.html
Copyright © 2011-2022 走看看