2017-07-08 93 views
0

如何將重寫的printwriter類設置爲默認的printwriter類。每當我創建一個printwriter對象時,創建的對象應該是被覆蓋的printwriter類的對象。像設置system.setOut()一樣,是否有任何可用於設置printwriter的函數。System.setOut()等效於PrintWriter

+0

你能分享一下你想要實現的功能嗎?這會讓問題更容易理解 – Mureinik

+0

我同意這一點。由於你的想法不起作用 - 如果你想要的不僅僅是「這不起作用」,請嘗試舉一個小例子。您關於堆棧跟蹤元素的其他評論也是關於「如何解決」......請告訴我們您爲什麼需要這樣做?! – GhostCat

+0

我需要保護這些數據免遭黑客入侵。如果被黑客攻擊並且黑客訪問它,他可能只會獲得「」而不是他期望的數據。有一個班,它有一個成員s。 S是私人的,我通過公共職能得到它。每當像system.out.println或printwriter或httpservletresponse的作者嘗試訪問它時,我應該返回「」而不是s。只要包內的其他函數訪問它,它就會返回s。這是我想要做的。對加密和使用stacktraceelement來識別哪個方法稱爲此函數不感興趣。 – pvkcse

回答

0

你不能那樣做。在你的例子中,一個非常特定的對象被「替換」。只有System.out的行爲不同。沒有其他流受到該調用的影響。

換句話說:沒有辦法改變像這樣的呼叫新的X()會做。如果你想要的東西不是X對象 - 例如你必須調用新的Y()

+0

我必須從servlet響應中獲取作者。所以每當我嘗試寫入一個特定的字符串到這個作家對象時,該字符串應該被設置爲空字符串。所以如果我寫「sss」爲例,它必須寫「」給作者從servlet的響應中獲取。有什麼辦法可以做到這一點? – pvkcse

+0

沒有機會。還有:錯誤的方法。如果作者不寫任何東西 - 那就不要寫任何東西! – GhostCat

+0

當然可以。但要求是這樣的。抓頭...已經嘗試過StackTraceElement,但不允許使用。所以當然必須找出一種方法,如果一個可能使它暴露給外部世界的函數訪問它,那麼這個特定成員應該返回「」。到目前爲止,我知道StackTraceElement是唯一的方法。但是我也不能使用它。如果你發現任何很酷的東西來實現這一點,請分享,提前致謝! – pvkcse