我想在/爲錫蘭編寫一個RMI庫(因爲我還沒有找到一個)。錫蘭RMI/Proxy和非默認方法的關係
我需要的第一件事就是代理。在java中我用類似
Proxy.newProxyInstance(classLoader, interfaces, handler);
有什麼等同於錫蘭? (還沒有找到的東西)
嘗試寫這樣的事情我自己,我碰到這個solution for the jvm使用字節碼操作。 漂亮,正是我想要的。 請注意,這甚至可以爲類生成代理,而不僅僅是像java中的接口。在錫蘭,這應該是合法的,因爲沒有字段,我們可以用方法調用模擬整個類。
2.如果創建類的代理服務器是不行的,請告訴我。 另外,代理的錫蘭直覺/未來是什麼?會有(沒有)代理嗎?
與代理以後,我們有一個大問題:
在錫蘭我們有default
關鍵字,沒有它的方法無法琢磨/覆蓋。這也導致編譯的java輸出類的final
方法。因此(甚至不)字節碼操作可以覆蓋那些並將它們重定向到調用處理程序/攔截器。
3.我們該如何處理?
我假設沒有?我完全想到禁止改進方法和default
/final
關鍵字,但是這阻礙了類的RMI /代理。
4.代理的類是一個壞主意嗎?
是的,有這麼多問題,我目前思考和研究上:JS實現,接口和默認方法等
這點似乎是最相關的那一刻,所以讓我們從這裏開始。