Groovy:向父对象添加对属性中方法的引用
假设我有一门课是这样的:Groovy:向父对象添加对属性中方法的引用,groovy,Groovy,假设我有一门课是这样的: class Foo { def doFoo() { println "foo" } } class Bar { def doBar() { println "bar" } } class Baz { Foo foo = new Foo() Bar bar = new Bar() } Baz baz = new Baz() baz.doFoo() baz.doBar() 还有一个是这样的: class Foo { def
class Foo {
def doFoo() {
println "foo"
}
}
class Bar {
def doBar() {
println "bar"
}
}
class Baz {
Foo foo = new Foo()
Bar bar = new Bar()
}
Baz baz = new Baz()
baz.doFoo()
baz.doBar()
还有一个是这样的:
class Foo {
def doFoo() {
println "foo"
}
}
class Bar {
def doBar() {
println "bar"
}
}
class Baz {
Foo foo = new Foo()
Bar bar = new Bar()
}
Baz baz = new Baz()
baz.doFoo()
baz.doBar()
还有一个是这样的:
class Foo {
def doFoo() {
println "foo"
}
}
class Bar {
def doBar() {
println "bar"
}
}
class Baz {
Foo foo = new Foo()
Bar bar = new Bar()
}
Baz baz = new Baz()
baz.doFoo()
baz.doBar()
在这个例子中,需要什么才能像这样使用它:
class Foo {
def doFoo() {
println "foo"
}
}
class Bar {
def doBar() {
println "bar"
}
}
class Baz {
Foo foo = new Foo()
Bar bar = new Bar()
}
Baz baz = new Baz()
baz.doFoo()
baz.doBar()
其中,doFoo
和doBar
方法调用只是委托给各自对象中定义的版本?有没有办法通过某种元编程来实现这一点,或者我是否被困在将每个方法单独定义为包装器的过程中?是您所需要的:
class Foo {
def doFoo() {
println "foo"
}
}
class Bar {
def doBar() {
println "bar"
}
}
class Baz {
@Delegate
Foo foo = new Foo()
@Delegate
Bar bar = new Bar()
}
Baz baz = new Baz()
baz.doFoo()
baz.doBar()
我自己刚找到这个。仍然在学习Groovy,并且每天都更加热爱它@安迪,是的,这是一种非常好的语言。找到了另一篇关于AST转换和特性的详细文章: