国产探花免费观看_亚洲丰满少妇自慰呻吟_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}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长春市| 夏河县| 葵青区| 金堂县| 京山县| 镇原县| 阿城市| 依安县| 东源县| 潮安县| 黔西县| 正镶白旗| 金坛市| 偃师市| 赣州市| 宁安市| 云霄县| 台东市| 剑川县| 繁昌县| 江津市| 河曲县| 洪湖市| 平武县| 青神县| 鲁甸县| 尼勒克县| 介休市| 兴仁县| 鹰潭市| 香港 | 浦江县| 铜鼓县| 义马市| 沿河| 莱阳市| 汨罗市| 射洪县| 乐都县| 临沧市| 柘城县|