[英]How to override classes in the Java API, thus changing their behaviour using Reflection?
是否有可能重寫Exceptions類,從而將我自己的方法注入其中,從而改變其整體性能。 我相信我在某處讀到它可以使用自定義類加載器或某種反射技術來完成? 我認為它提到使用自定義類加載器加載您的自定義類,而不是加載默認的Java API類。 如果是這樣,怎么做,例如,在調用printStackTrace(e)時創建一個JOptionPane異常消息彈出窗口,該消息提醒用戶該異常消息。
以java
開頭的包中的類受JVM本身的保護,因此為了能夠更改這些包中的類,您需要的不只是其他類加載器。 您可以只使用System.setErr
來設置自己的PrintStream,而該System.setErr
會打開顯示該文本的警告框,而不是采用這種方式。 然后,這不僅包括對printStackTrace
調用,而且還包括在STDERR上打印的所有內容。 如果調用來自Throwable
或您要支持的其他類,而忽略其余部分,則可以通過檢查新創建的Exception的調用stacktrace來使用某些篩選。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.