分享一个有趣的 Java 题
import java.io.PrintStream;
// 要求写一个method方法实现:打印出 a=100, b=200
public class methodTest {
public static void main(String[] args) {
int a = 10;
int b = 10;
method(a, b);
System.out.println("a=" + a);
System.out.println("b=" + b);
}
// 方法一:提前退出
// public static void method(int a, int b) {
// a = 100;
// b = 200;
// System.out.println("a=" + a);
// System.out.println("b=" + b);
// System.exit(0); // 退出程序
// }
//方法二:重写输出流
public static void method(int a, int b) {
PrintStream ps = new PrintStream(System.out){
@Override
public void println(String x) {
if ("a=10".equals(x)) {
x = "a=100";
} else if ("b=10".equals(x)) {
x = "b=200";
}
super.println(x);
}
};
System.setOut(ps); // 重新分配标准输出流
}
}
标签:200,int,System,public,println,100,method,out
From: https://blog.51cto.com/u_13946099/8023603