2017-07-08 52 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