【发布时间】:2013-05-18 00:56:45
【问题描述】:
考虑一个混合类
class StringPlusMixin {
String plus(String other) {
return toString() + other
}
}
还有他的用例
@Mixin(StringPlusMixin)
class POGO {
String descr
String toString(){
return descr
}
}
有没有办法让SringPlusMixin 使用POGO#toString() 而不是SringPlusMixin#toString()?
实际输出为:
POGO pogo = new POGO(descr: "POGO description");
System.out.println(pogo + "Some message."); //StringPlusMixin@f410f8 Some message.
我正在考虑使用这个 mixin,因为 Groovy 默认的 instance + String 是尝试调用 plus() 方法。我在几个 Java 类中使用了我的POGO,并试图不需要更改所有消息以使用toString()。
【问题讨论】: