1
我有一個框架代表客戶端加載任意類的實例,並希望字段(特別是私有字段)只有在第一次訪問字段時才能初始化/加載懶惰。攔截私人字段訪問做延遲加載
有沒有辦法在返回值之前攔截這些私人字段訪問並將值注入字段(也可能「緩存」它們)?
我猜java.lang.reflect.Proxy/InvocationHandler被排除,因爲它們只能攔截方法調用。
我有一個直覺認爲字節碼操作庫可以處理這個問題。我已經看過ASM,Javassist,BCEL,cglib並且搜索了所有內容,但未能找到有關如何實現此目的的明確說明。
感謝您的回答。我害怕aspectj不適合我,因爲我想避免編譯時依賴。 – deephacks 2012-03-03 13:54:32