日期:2014-05-20  浏览次数:20789 次

出一道看上去几乎不可能实现的题目
public static void main(String[] args) {
//请在这里写一些代码
System.out.println("aaaa");//使得这里打印的结果是bbbb,而不是aaaa
}

------解决方案--------------------
用ASM直接加载这个类的class文件,直接修改字节码,应该可以。
------解决方案--------------------
System.out.println("aaaa");//使得这里打印的结果是bbbb,而不是aaaa

自己写一个OutputStream 替换掉System.out属性的这个out,覆盖掉println方法,其中只打印bbbb就可以了
------解决方案--------------------
外面加下。
Java code
public class System{
    static class out{
        public static void println(String x){
            java.lang.System.out.println("bbbb");
        }
    }
    public static void main(String[] args) {
        System.out.println("aaaa");
    }
}

------解决方案--------------------
public static void main(String args[])
{
PrintStream out = null;
try
{
out = new PrintStream("bbbb");
}
catch (FileNotFoundException e)
{

e.printStackTrace();
}
System.setOut(out);

System.out.println("aaaa");

}
------解决方案--------------------
忘了加format这句
public static void main(String args[])
{

System.out.format("bbbb");
PrintStream out = null;
try
{
out = new PrintStream("bbbb");
}
catch (FileNotFoundException e)
{

e.printStackTrace();
}
System.setOut(out );


System.out.println("aaaa");

}
------解决方案--------------------
Java code
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");