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

Java输出重定向

时间:2017-10-17 09:59:53      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:and   方法   ati   blog   roi   art   tar   定向   面试   

今天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输出重定向

标签:and   方法   ati   blog   roi   art   tar   定向   面试   

原文地址:http://www.cnblogs.com/hatsusakana/p/7679908.html

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