2010년 2월 23일 화요일

Groovy Category

class TestCategory{
static String cut(String self, int len){
return self[ 0 ..< len ]
}
}

use(TestCategory){
assert 'abc' == 'abcdefg'.cut(3) //<-- (2)
}

(2)를 보면 마치 String에 cut메소드가 있는 것처럼 보인다.
위에서 정의한 TestCategory의 cut메소드에 첫번째 인자로 인스턴스를 전달해서 (2)번과 같이 인스턴스 메소드를 호출한 것 처럼 동작한다.

Groovy

왜 이게 안뜨는 건지
인사이트 블로그에도 최대 실패작이라는 글(물론 도서 번역본 발행)이 올라오고...
정말 훌륭한 기술이다.
물론 쩌어기 kldp 옵하들이 말하는 여러가지 단점들이 있지만
자바 개발자라면 필수적으로 알아야할듯...
기존 다른 스크립트 언어들도 시도를 많이 해 봤지만
항상 자바와 연동하려고 할때 뭔가 찝찝함이 밀려오는 방식이었는데
이건 머 걍 깔끔하다.