欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一个很有意思的java代码例子

程序员文章站 2022-03-12 16:05:06
...
在群里看到一个代码比较有意思,保存下来。很有深度的讨论,随便发下。
public class Monday {
   public static void main(String args[]) {
               【place holder】
      System.out.println("aaaa");
   }
}
问题:在括号内加几行代码,让打印aaaa那行打印出bbbb

方案1:
public class Monday {
   public static void main(String args[]) {
      try {
          String aaaa = "aaaa";
          Field field = String.class.getDeclaredField("value");
          field.setAccessible(true);
          char[] value = (char[]) field.get(aaaa);
          Arrays.fill(value, 'b');
      } catch (Exception e) {
      }
      System.out.println("aaaa");
   }
}

方案2:
public class Monday {
   public static void main(String args[]) {
      System.setOut(new PrintStream(System.out) {
         public void println(String str) {
            super.println("bbb");
         }
      });
      
      System.out.println("aaa");
   }
}
方案1是修改reference内容,方案2是重载