groovy 中有多種途徑實現向原有類新增方法,具體有如下幾種:
mop(meta object protocol) -- 詳見 expandometaclass
擴充套件方法 -- gdk採用的此方法
category 註解 -- 影響範圍可控
mixin
下面看下**:
/*** @author
:zackzhou
* @date :created in 2020/10/20 10:27 am
* @description :如何向已有的類中新增新的方法
* @modified by:
* @version:
*///
metaclass
string.metaclass.say =
"hello ".say("world")
//使用category
@category(string)
class
sayagain
}use(sayagain)
//mixin
class
newmethodprovider
}string.mixin(newmethodprovider)
"hello ".saysomething("world")
//新增擴充套件方法,gdk中使用的就是此方法,dgm -- defaultgroovymethods
/** 步驟:
* 1. 建立自己的類
* 2. 在 meta-info/services 檔案控制代碼裡面加入 此類的全路徑, 如下:
* modulename=regina-marshal
moduleversion=1.0
extensionclasses=regina.marshal
staticextensionclasses=
* 3. 將此專案打成jar
* 4. 使用者引入此jar 即可
* */
//建議使用優先順序: category class > meta class > mixin
//delegate -- 不能向已有的無法更改的類新增方法,但是可以在新加的類中使用,用來將別的類的方法 新增到新的類中,本質上是 編譯器 將別的類的例項加入到了此類中,然後定義相同名字的方法,呼叫原來類的方法
class
human
}class
women
}women women = new women(human: new
human())
women.say("yes")
women.birth()
如何將已有的資源新增到如今工程中
在mfc程式設計中,為了節約時間,方便操作,有時候需要將現有工程的資源直接拿來為正在編寫的工程服務。設有工程a,現在要新建乙個工程b,在b要見乙個和a裡面一樣的的資源,比方說對話方塊資源,為了避免重現建立帶來的各種重複和麻煩,我們可以直接引用a中編輯好的資源,從而大大節省了時間,具體步驟如下 1 在...
MTK 中如何新增菜已有選單
前幾天,上面給我一任務,把一已存在的選單放到另外幾處去!本以為會很簡單的 有現成的例子,也做過fugui 想想就知道,這樣想往往會眼高手低,居然做了兩天了,我大汗哎呀,臉紅的要命。先bs一下自己!注意了,下面就進入話題了!同學,這位同學,說你呢,就你,看什麼看,不要說話了,現在已經上課了。mtk中會...
如何將CUDA 匯入已有的C 工程中
yes i did,and it is working.create c project project right click build customisation check cuda 7.0 compiler addcudart.libto properties linker input a...