Guava tostring hashCode equeals compareTo

 public static void main(String[] args){
        final Guava guava=new Guava("a","22",Calendar.getInstance());
        System.out.println(guava);
        System.out.println(guava.hashCode());


        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.YEAR,1);
        final Guava guava2=new Guava("a","22",instance);
        System.out.println(guava.compareTo(guava2));
    }


    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 boolean equals(Object o) {
//            if (this == o) return true;
//            if (o == null || getClass() != o.getClass()) return false;
//            Guava guava = (Guava) o;
//            return Objects.equals(manufacturer, guava.manufacturer) && Objects.equals(version, guava.version) && Objects.equals(releaseDate, guava.releaseDate);
//        }

        @Override
        public boolean equals(Object o) {
            if (this == o) return true;
            if (o == null || getClass() != o.getClass()) return false;
            Guava guava = (Guava) o;
            return Objects.equal(this.manufacturer,guava.manufacturer)&& Objects.equal(this.version,guava.version) && Objects.equal(this.releaseDate,guava.releaseDate);
        }

//        @Override
//        public int hashCode() {
//            return Objects.hash(manufacturer, version, releaseDate);
//        }

        @Override
        public int hashCode() {
            return com.google.common.base.Objects.hashCode(manufacturer,version,releaseDate);
        }

//        @Override
//        public String toString() {
//            return "Guava{" +
//                    "manufacturer='" + manufacturer + '\'' +
//                    ", version='" + version + '\'' +
//                    ", releaseDate=" + releaseDate +
//                    '}';
//        }

        @Override
        public String toString() {
            return MoreObjects.toStringHelper(this).omitNullValues()
                    .add("manufacturer",this.manufacturer)
                    .add("version",this.version)
                    .add("releaseDate",this.releaseDate).toString();
        }

        @Override
        public int compareTo(Guava o) {
            return ComparisonChain.start().compare(this.manufacturer,o.manufacturer).compare(this.version,o.version).compare(this.releaseDate,o.releaseDate).result();
        }



    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值