我不知道是否有一種方法可以做到這一個「簡單的方法」,也許有人知道一個解決方案:非法訪問擴展javax.swing.text.html.HTMLDocument中
我與使用javax工作。 swing.text.html.HTMLDocument類,但由於某種原因,我需要的至少2個方法是非公共的,即使如此,我需要「覆蓋」它們,以改變一些東西,但是,在某種程度上,我需要保留HTMLDocument類,因爲我使用了很多包javax.swing.text.html ...
所以,我第一次做的是創建一些MyHTMLDocument擴展HTMLDocument,並嘗試重寫一些方法...當失敗時,我嘗試用某些方法反思解決問題,但不起作用..因此,經過了解,我已經「複製 - 粘貼所有」HTMLDocument代碼作爲MyHTMLDocument,(擴展HTMLDocument),改變我需要的東西,並將其放在我自己的「javax.swing.text.html」包中,看起來好像現在工作,但...
...當我終於運行它,我遇到了一些「非法訪問錯誤」,當我打電話給TagActions例如...我越來越沮喪...
請,如果有人可以幫助我,我真的很感激它。
UPDATE:
好吧,讓我澄清:
在類javax.swing.text.html.HTMLDocument中,你可以找到三種方法:
公共getReader( INT POS)
公共getReader(INT POS,INT POS,INT popDepth,INT pushDepth,我的HTML.Tag nsertTag)
getReader(INT POS機,POS詮釋,詮釋popDepth,INT pushDepth,的HTML.Tag insertTag,布爾insertInsertTag)
最後一個,就是非公開或保護。
此外,有一種內在的級稱爲HTMLReader的,它有3層構造:
公共HTMLReader的(INT偏移)
公共HTMLReader的(INT抵消,詮釋popDepth,INT pushDepth,HTML .TAG insertTag)
HTMLReader的(INT抵消,詮釋popDepth,INT pushDepth,的HTML.Tag insertTag,布爾insertInsertTag,布爾insertAfterImplied,布爾wantsTrailingNewline)
再次,最後一個是非公開的。
我需要做的是從我的自定義類調用至少這2個非公: 公共類MyHTMLDocument擴展HTMLDocument的{
} 但我只是不知道如何做到這一點。我甚至嘗試了一些反思,它似乎工作的方法,但我無法找到一種方法來做相同的構造函數... 再次感謝。
請碼你想做什麼表現。由於某種原因,這些方法是非公開的,並且可能還有其他方法來完成您正在嘗試執行的操作。以完全抽象的方式討論這個問題是沒有用的。 – 2012-04-05 17:17:38
林不知道總有一個原因......我真的認爲至少應該保護這兩個......但是,正如你所說,討論這是無用的。我已經修改了我原來的帖子來解釋我正在做的事情。感謝您的回覆 – ThanatosMK 2012-04-10 18:31:27