通過實現公共介面來反射獲取狀態資訊

2021-08-20 15:17:20 字數 1032 閱讀 9499

多個列舉傳入乙個相同的code返回對應的列舉   寫法?

看問題:在用bootstrap寫出乙個介面後,發現訂單狀態和支付狀態都為0,顯然是從資料庫中取出來的,但是不可讀,如果修改?

最基本的修改方式是新增if語句:

那麼這樣有問題,不僅在訂單狀態寫if語句,而且還得在支付狀態上寫,而且一旦新增新的狀態,這些就都要改了。

比較好的修改方式是:

1. 在我的dto中新增每個列舉類對應的方法,用來獲取列舉類

2. 再在該對應的列舉類中寫方法。

那麼這樣的話,還是會有乙個問題,因為每個列舉類都要寫乙份一樣的**~

高階的方法:

由於是公共的方法,核心傳入int型code值會返回乙個列舉值,這樣讓每個列舉實現乙個公共的介面。

public class enumutil 

}return null;}}

@jsonignore

public orderstatusenum getorderstatusenum()

@jsonignore

public paystatusenum getpaystatusenum()

在orderdto新增兩個方法就可以了。

那麼得到的結果:

通過反射呼叫介面的方法

之前使用公司的框架,業務使用到的一般就是action serviceimpl business模式,其中業務邏輯主要寫在businsess中,這個裡面有一段和常用但是一直不知道原理是什麼,就是下面這段 user user this.getdao getbean userdao.class selec...

通過反射實現圓角ImageView

private void init 繼承imageview,在構造方法中呼叫,初始化paint和xfermode。protected void ondraw canvas canvas 重寫imageview的ondraw方法,通過xfermode實現圓角 private void reflects...

使用dynamic來簡化反射實現

dynamic是framework4.0的新特性,dynamic的出現讓c 具有了弱語言型別的特性,編譯器在編譯的時候,不再對型別進行檢查,不會報錯,但是執行時如果執行的是不存在的屬性或者方法,執行程式還是會丟擲runtimebinderexception異常。var 與 dynamic 的區別 v...