修改自動生成get/set方法模板代碼

今天看到 面對接口髒數據你還在V層if str==null else setText? 一文,覺着寫得挺好,開發過程當中多思考多動手,會帶來意想不到的效果。底下評論你們也都說了各自的方法和看法,文中有一些問題做者後來也解決了,看到評論裏有人說: bash

image.png

說到配置as,就能夠實如今建立bean時自動生成return xx==null?"":xx; 覺着很好,由於我覺着這是一種挺簡單的方法,可是就如同底下人問了怎麼配置呀,我也不知道,因而我就在本身as工具裏新建了一個bean對象,按住alt+insert添加get/set方法,發現瞭解決辦法。以下圖: 工具

image.png

平時手快也沒注意,今天仔細看了看,那上面的意思不就是,get 方法模塊,set方法模板嗎,後面跟着 IntelliJ Default大概就是默認的生成模板吧,點擊後面的三個點 按鈕進去看看,以下: post

image.png

這是set的,get方法也相似是這樣的,大概也能看懂,想着是否是能夠直接模板就行了,發現沒法修改,後來又發現左上角的+號,原來是本身能夠新建一個模板,而後再生成的時候選擇本身的模板就行了,如咱們在get模板中新建一個本身的模板:ui

image.png

image.png

咱們知道咱們只須要改一下最後get方法return那個地方的代碼,也就是這兒: this

image.png

不肯定是否是,咱們能夠在後面跟着一個「#」號試試:spa

${name}() {
  return $field.name+"#";
}
複製代碼

在生成的時候選擇咱們自定義的模板: code

image.png

發現最後生成的代碼:cdn

public String getAge() {
        return age + "#";
    }

    public void setAge(String age) {
        this.age = age;
    }

複製代碼

這樣證實肯定是這樣的,那麼我麼能夠繼續進行真正的判斷了: 咱們先把這個默認裏的get方法代碼拷貝到 MyGetter中,咱們再根據咱們本身的須要修改模板代碼,其它地方不變,就修改須要修改的地方: 咱們想要實現這樣的:return xx==null?"":xx,Ok ,那麼我認爲大概是這麼寫的,注意咱們只對String類型的字段進行判斷,在此我修改下:對象

${name}() {
   return $field.name == null ? "" : $field.name;
}
${name}() {
    #if($field.String)
        return $field.name == null ? "" : $field.name;
    #else
         return $field.name;
     #end
}

複製代碼

咱們對比一個default的寫法:blog

${name}() {
  return $field.name;
}
複製代碼

好的,咱們再繼續生成一下:

public String getAge() {
        return age == null ? "" : age;
    }

    public void setAge(String age) {
        this.age = age;
    }
複製代碼

好的,達成效果,耶,竟然還能夠這麼玩,之後可根據本身需求自行修改,謝謝你們。

相關文章
相關標籤/搜索