메서드 체인을 사용하여 구현 클래스의 메서드와 함께 특성 메서드를 통합 할 수 있습니까? 이를 위해서는 트레이 트가 구현 클래스의 특정 유형을 반환해야하며 "this"변수는 기본적으로 해당 유형이 아닙니다.
다음과 같은 것 :
def withFilter(String filter){
this.filter = filter
return (super.getClass())this
}
아래 게시물의 최상위 답변에 따르면 Scala Traits로 쉽게 달성 할 수 있지만 구문을 정확하게 이해하지 못합니다. 반환 유형을 정의하는 클로저를 사용하는 것처럼 보이지만 Groovy에서도 동일한 것이 가능합니까?
제네릭 접근 방식을 사용할 수 있습니다.
다음은 예입니다.
trait MyTrait<T extends MyTrait<T>> {
def filter
T withFilter(String filter) {
this.filter = filter
return (T) this
}
}
class MyClz implements MyTrait<MyClz> {
def clzMethod() {}
}
def clz = new MyClz()
.withFilter("hello")
.withFilter("another")
.clzMethod()
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다