码迷,mamicode.com
首页 > 编程语言 > 详细

关于java输出的一道题

时间:2019-10-08 00:56:20      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:ring   ams   tab   table   ref   void   pen   题目   tps   

今天在我的后宫群看到了一道有意思的java题,分享一下

题目是这样的技术图片
看到第一眼,反应:重载输出println也能重载
据说正常反应应该是 在method中输出然后直接退出,果然是自己智商不够
既然不确定,那就Stack Overflow一下,找了找果然发现了,System.setOut()

关于这个函数,详细内容可以看官方文档,在这大致概括一下

setOut(PrintStream out)
将输出流的规则设置为out内的输出规则

PrintStream中,则有着println方法,因此,我们只需要override一下
println(String x)就可以达到要求了。

记得a=10输出是无换行的,应该使用super.print方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static void (int a, int b) {
System.setOut(new PrintStream(System.out) {
public void println(String x) {
if (x != null) {
if (x.equals("a=10")) {
x = "a=100,";
super.print(x);
} else {
if (x.equals("b=10")) {
x = "b=200";
}
super.println(x);
}
} else {
super.println(x);
}
}
});
}

输出
a=100,b=200

原文:大专栏  关于java输出的一道题


关于java输出的一道题

标签:ring   ams   tab   table   ref   void   pen   题目   tps   

原文地址:https://www.cnblogs.com/sanxiandoupi/p/11633165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!