今天一朋友晒出他去年的在群里讨论的一道面试题,挺有意思的:
这道题得看出题作者的目的在哪
个人觉得重写输出对象来得比较符合题意,如方法二
就是这么简单的一道题,当时众口云云,但大致有以下两种:
import java.io.PrintStream;
public class TestDemo {
public static void main(String[] args) {
int a = 10;
int b = 10;
method(a,b);
//需要在method方法被调用之后,仅打印出a-100,b=200,请谢写出method方法的代码
System.out.println("a="+a);
System.out.println("b="+b);
}
//代码编写处
// 方法一:
// private static void method(int a, int b) {
// // TODO Auto-generated method stub
// a*=10;
// b*=20;
// System.out.println("a="+a);
// System.out.println("b="+b);
// System.exit(0);
// }
// 方法二:
private static void method(int a, int b) {
PrintStream stream = 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(stream);
}
}
//需要在method方法被调用之后,仅打印出a-100,b=200,请谢写出method方法的代码
System.out.println("a="+a);
System.out.println("b="+b);
}
//代码编写处
// 方法一:
// private static void method(int a, int b) {
// // TODO Auto-generated method stub
// a*=10;
// b*=20;
// System.out.println("a="+a);
// System.out.println("b="+b);
// System.exit(0);
// }
// 方法二:
private static void method(int a, int b) {
PrintStream stream = 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(stream);
}
}