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}"));
        }
    }
    

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

    作者:吕世昊

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

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

  • 相关阅读:
    IOS使用 swizzle 解决一些错误
    Objective-C的hook方案(一): Method Swizzling
    jmeter录制Chrome浏览器https请求进行压力测试
    FIDDLER导出JMX文件,JMETER打开导出的JMX报错的解决方式
    Fiddler的PC端与手机端抓包配置步骤
    初识中间件之消息队列--提高服务性能
    Python虚拟环境配置应用
    jmeter三种阶梯式加压
    JMETER-正则表达式提取与查看变量是否提取正确
    jmeter的线程数,并发用户数,TPS,RPS 关系解说
  • 原文地址:https://www.cnblogs.com/lvshihao/p/15160794.html
Copyright © 2011-2022 走看看