第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

google guava中的對(duì)象操作封裝

標(biāo)簽:
Java

我们在开发中经常会需要比较两个对象是否相等,这时候我们需要考虑比较的两个对象是否为null,然后再调用equals方法来比较是否相等,google guava库的com.google.common.base.Objects类提供了一个静态方法equals可以避免我们自己做是否为空的判断,示例如下:

        Object a = null;        Object b = new Object();        boolean aEqualsB = Objects.equal(a, b);

Objects.equals的实现是很完美的,其实现代码如下:

  public static boolean equal(@Nullable Object a, @Nullable Object b) {    return a == b || (a != null && a.equals(b));  }

首先判断a b是否是同一个对象,如果是同一对象,那么直接返回相等,如果不是同一对象再判断a不为null并且a.equals(b). 这样做既考虑了性能也考虑了null空指针的问题。

另外Objects类中还为我们提供了方便的重写toString()方法的机制,我们通过例子来了解一下吧:

package cn.outofmemory.guava.base;import com.google.common.base.Objects;public class ObjectsDemo {    public static void main(String [] args) {      Student jim = new Student();        jim.setId(1);        jim.setName("Jim");        jim.setAge(13);        System.out.println(jim.toString());    }    public static class Student {        private int id;        private String name;        private int age;        public int getId() {            return id;        }        public void setId(int id) {            this.id = id;        }        public String getName() {            return name;        }        public void setName(String name) {            this.name = name;        }        public int getAge() {            return age;        }        public void setAge(int age) {            this.age = age;        }        public String toString() {            return Objects.toStringHelper(this.getClass())                    .add("id", id)                    .add("name", name)                    .add("age", age)                    .omitNullValues().toString();        }    }}

 我们定义了一个Student类,该类有三个属性,分别为id,name,age,我们重写了toString()方法,在这个方法中我们使用了Objects.toStringHelper方法,首先指定toString的类,然后依次add属性名称和属性值,可以使用omitNullValues()方法来指定忽略空值,最后调用其toString()方法,就可以得到一个格式很好的toString实现了。

上面代码输出的结果是:

Student{id=1, name=Jim, age=13}

这种方式写起来很简单,可读性也很好,所以用Guava吧。

原文链接:http://outofmemory.cn/java/guava/base/Objects

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消