Trait.
我們實作類似於Scala Trait的功能, 在下面的範例中, 動態產生一個類別, 而類別的內容, 是由使用者所指定的類別去組合產生.
由於該功能尚未公開, 所以提供功能的類別名稱被混淆過了, 但仍可以被混淆過的類別去使用該功能, 僅管看起來奇怪, 但使用者在引用 Eva 的 library 後, 下方的範例會是可以正確執行的.
在下方的範例中宣告了一個 A 介面, 而且實作它的抽象類別為, B, C, D 類別. 由 B, C, D 類別我們組合出了一個新類別 clz, 由測試結果可看出, clz 中 op 與 op2 的實際內容, 來自於前 3 個類別中同名函式的組合.
由於該功能尚未公開, 所以提供功能的類別名稱被混淆過了, 但仍可以被混淆過的類別去使用該功能, 僅管看起來奇怪, 但使用者在引用 Eva 的 library 後, 下方的範例會是可以正確執行的.
在下方的範例中宣告了一個 A 介面, 而且實作它的抽象類別為, B, C, D 類別. 由 B, C, D 類別我們組合出了一個新類別 clz, 由測試結果可看出, clz 中 op 與 op2 的實際內容, 來自於前 3 個類別中同名函式的組合.
package com.logntw.eva.trait;
|