Java輸出重定向
阿新 • • 發佈:2017-10-17
main 輸出重定向 str per 題目 exit tar ide 一位
今天android的一個群裏在討論一個java的面試題,如下:
class test { public static void main(String []args){ int a=10,b=10; Method(a,b); System.out.println("a="+a); System.out.println("b="+b); } }
實現Method方法,要求輸出,a=100,b=200。
剛看到這個題目我一蒙,這個什麽寫啊,java又沒有指針什麽的。
一會兒有一位神人發出了答案:
public static void Method(int a,int b) { System.out.println("a=100"); System.out.println("b=200"); System.exit(0); }
佩服、佩服,這樣卻是實現了題目的要求。但是這應該不是這條題目的本意,真正要考的是輸出重定向的問題。正確答案如下:
public static void Method(int a,int b){ PrintStream ps = new PrintStream(System.out){ @Override public void println(String x) { if(x.startsWith("a")) super.println("a=100"); if(x.startsWith("b")) super.println("b=200"); } }; System.setOut(ps); }
所以這條題目的要點在於java的輸出重定向的問題,不僅輸出可以重定向,輸入也可以重定向。
Java輸出重定向