Aspect J의 Inter-type Declaration이 동적 typing 언어의 open class와 비슷하다고 할 수 있을까요? 09.12.11 10:34
7 개의 댓글이 있습니다.
비슷한 개념을 자바에서 구현했다고 보면 되겠죠? 런타임과 컴파일 타임이라는 차이가 있겠지만...
fupfin 그렇군요~ Goovy에서 지원하는 open class도 compiile time이라고 봐야겠죠?
benelog 음... 어떤 면에서 그럴까요? Groovy도 runtime에 mixin을 지원할텐데... 클래스 레벨, 인스턴스 레벨 모두에 말이죠.
fupfin 음.. groovy도 byte code로 바뀌니, byte code에는 aspect J로 만든 결과처럼 뭔가 박혀있지 않을까.. 하는 생각이 들어서요; Groovy에 대해서 깊이 몰라서 잘은 모르겠군요;
fupfin 결국 groovy의 mixin은 runtime의 bytecode 조작기술을 이용한 것이고 compiile time은 아닌 것일까요?;
fupfin 아니면 java입장에서는 compile time 인것이 groovy 입장에서는 runtime이 될 수도 있는 것일까요?
runtime mixin을 구현하려면 역시 bytecode 조작이나 실시간 코드 생성 밖에는 없을 것 같아요. JVM을 속이는 거죠. 완전 삽질...;;;;;
비슷한 개념을 자바에서 구현했다고 보면 되겠죠? 런타임과 컴파일 타임이라는 차이가 있겠지만...
09.12.11 10:48fupfin 그렇군요~ Goovy에서 지원하는 open class도 compiile time이라고 봐야겠죠?
09.12.11 12:19benelog 음... 어떤 면에서 그럴까요? Groovy도 runtime에 mixin을 지원할텐데... 클래스 레벨, 인스턴스 레벨 모두에 말이죠.
09.12.11 13:31fupfin 음.. groovy도 byte code로 바뀌니, byte code에는 aspect J로 만든 결과처럼 뭔가 박혀있지 않을까.. 하는 생각이 들어서요; Groovy에 대해서 깊이 몰라서 잘은 모르겠군요;
09.12.11 13:42fupfin 결국 groovy의 mixin은 runtime의 bytecode 조작기술을 이용한 것이고 compiile time은 아닌 것일까요?;
09.12.11 13:43fupfin 아니면 java입장에서는 compile time 인것이 groovy 입장에서는 runtime이 될 수도 있는 것일까요?
09.12.11 13:46runtime mixin을 구현하려면 역시 bytecode 조작이나 실시간 코드 생성 밖에는 없을 것 같아요. JVM을 속이는 거죠. 완전 삽질...;;;;;
09.12.11 13:57