1
ArthurKing 2017-02-10 17:50:56 +08:00 9
static void method(int a,int b){
System.out.println("a=100,b=200"); //throw new NullPointerException(); System.exit(0); } |
2
finalspeed 2017-02-10 17:54:05 +08:00
楼上的 66666....
|
3
kaka8wp 2017-02-10 18:05:27 +08:00
楼上的 66666....
|
4
fighter2011 2017-02-10 18:14:41 +08:00
等待其他解答
|
5
ininit 2017-02-10 18:19:40 +08:00 via Android
楼上的 666
|
6
qiayue 2017-02-10 18:21:52 +08:00
@ArthurKing exit 哈哈哈
|
7
bianhua 2017-02-10 18:23:00 +08:00 1
跟你们说吧,只有 1 楼的答案是对的,因为后面那两个它么是的 println (笑哭
|
8
ArthurKing 2017-02-10 18:29:25 +08:00
@bianhua 不不不,还可以换成 while(true); ( ˙-˙ )
|
9
logbang 2017-02-10 18:32:38 +08:00 via Android
楼上的 66666....
|
11
jasontse 2017-02-10 20:55:46 +08:00 via iPad
套路。。。
|
12
haozibi 2017-02-10 21:00:20 +08:00
1 楼真是简单粗暴
|
13
vh2h 2017-02-10 21:08:33 +08:00
自古一楼出奇迹,看来没错啊!膜拜一楼。
|
14
aitaii 2017-02-10 22:11:43 +08:00 via Android
正常的话是 a
b |
15
aristotll 2017-02-10 23:31:57 +08:00
第二种方法是啥 第一种我也想到了...
|
16
virusdefender 2017-02-10 23:50:20 +08:00 via iPhone 2
|
17
valkyrja 2017-02-10 23:52:19 +08:00 via Android
似乎可以覆盖 system.out.println 然后 replace?
|
18
padeoe 2017-02-11 00:06:19 +08:00 1
长知识,帮补代码:
public static void method(int a, int b) { System.setOut(new PrintStream(System.out) { @Override public void println(String s) { super.println(s.equals("a=10") ? "a=100" : "b=200"); } }); } |
19
lxy42 2017-02-11 00:06:45 +08:00 via Android
在 method 中打印结果后,将 stdout 重定向到 stderr
|
20
zhilincom 2017-02-11 04:56:42 +08:00
@padeoe 应该是 super.print(s.equals("a=10") ? "a=100," : "b=200");
|
21
flyingghost 2017-02-11 23:16:41 +08:00
```
public static void method(int a, int b){ final PrintStream oldOut = System.out; PrintStream ps=new PrintStream(new FilterOutputStream(oldOut) { boolean meetOne = false; @Override public void write(int b) throws IOException { if( b =='0'){ oldOut.write('0'); oldOut.write(b); } else if(b == '1'){ if(!meetOne){ meetOne = true; oldOut.write(b); } else { oldOut.write('2'); } } else { oldOut.write(b); } } }); System.setOut(ps); } ``` |