dequanth

导航

一道网红题:Java值传递,答案开始看了不太懂,是不是涉及到了匿名类的实例化?

题目如下:看起来是值传递的考察。。。

public class Test{
    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);
    }
}
解答:
    public static void method(int a,int b){
        PrintStream printStream = 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(printStream);
    }

posted on 2022-09-22 11:15  dequantianhe  阅读(11)  评论(0编辑  收藏  举报