国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Groovy分類注入

2019-11-08 02:00:54
字體:
來源:轉載
供稿:網友

Groovy分類注入

1、Groovy使用use來注入方法,但該方法必須是靜態的,并且第一個參數必須是目標對象。
class AGroovyClass {	def add(val1, val2) {		val1 + val2	}}class AGroovyClassExtend {	def static add(self, val1, val2, val3) {		self.add(self.add(val1, val2), val3)	}}use(AGroovyClassExtend) {	obj = new AGroovyClass()	PRintln obj.add("Hello ", "World!")	println obj.add("Hello ", "World!", " Welcome to Groovy!")}返回Hello World!Hello World! Welcome to Groovy!2、Categoty注解將靜態方法轉變為實例方法。
class AGroovyClass {	def add(val1, val2) {		val1 + val2	}}@Category(AGroovyClass)class AGroovyClassExtend {	def add(val1, val2, val3) {		add(add(val1, val2), val3)	}}use(AGroovyClassExtend) {	obj = new AGroovyClass()	println obj.add("Hello ", "World!")	println obj.add("Hello ", "World!", " Welcome to Groovy!")}返回Hello World!Hello World! Welcome to Groovy!3、注入的方法可以使用類或閉包作為參數。
class AGroovyClass {}@Category(AGroovyClass)class AGroovyClassFilter {	def filter(array, closure) {		array.collect { closure(it) }	}}use(AGroovyClassFilter) {	obj = new AGroovyClass()	println obj.filter([1, 2, 3, 4, 5, 6]) { it * it }}返回[1, 4, 9, 16, 25, 36]4、use方法支持多個分類注入。
class AGroovyClass {    def add(val1, val2) {        val1 + val2    }}@Category(AGroovyClass)class AGroovyClassExtend {    def add(val1, val2, val3) {        add(add(val1, val2), val3)    }}@Category(AGroovyClass)class AGroovyClassFilter {    def filter(array, closure) {        array.collect { closure(it) }    }}use(AGroovyClassExtend, AGroovyClassFilter) {	obj = new AGroovyClass()	println obj.add("Hello ", "World!")	println obj.add("Hello ", "World!", " Welcome to Groovy!")	println obj.filter([1, 2, 3, 4, 5, 6]) { it * it }}5、注入的方法攔截原有方法
class AGroovyClass {    def add(val1, val2) {        val1 + val2    }    def add(val1, val2, val3) {        val1 + val2 + val3    }}class AGroovyClassExtend {    def static add(self, val1, val2) {        "AGroovyClassExtend add"    }	// 只有指定了self的類型,才會攔截    def static add(AGroovyClass self, val1, val2, val3) {        "AGroovyClassExtend add"    }}use(AGroovyClassExtend) {    obj = new AGroovyClass()    println obj.add("Hello ", "World!") // Hello World!    println obj.add("Hello ", "World!", " Welcome to Groovy!") // AGroovyClassExtend add}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹寨县| 萨迦县| 康定县| 屏山县| 呼伦贝尔市| 华阴市| 新巴尔虎右旗| 天水市| 承德市| 沾化县| 仁寿县| 枣庄市| 邻水| 临湘市| 珠海市| 德兴市| 文安县| 玉树县| 深圳市| 昭苏县| 原阳县| 梅河口市| 桓仁| 泸溪县| 新绛县| 衡东县| 安化县| 瓮安县| 龙门县| 永仁县| 托里县| 永昌县| 五指山市| 绿春县| 东莞市| 迁西县| 兖州市| 酒泉市| 敦化市| 安乡县| 长丰县|