一个代码比较有意思,保存下来。很有深度的讨论,随便发下。
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是重载
本文展示了两种方法来修改Java中字符串的输出内容:一是通过修改引用对象的内部内容;二是重载PrintStream的println方法。详细介绍了这两种方法的实现过程,并附上示例代码。
3444

被折叠的 条评论
为什么被折叠?



