当前位置: 代码迷 >> J2SE >> 出一道看上去几乎不可能实现的题目解决方法
  详细解决方案

出一道看上去几乎不可能实现的题目解决方法

热度:70   发布时间:2016-04-24 02:01:58.0
出一道看上去几乎不可能实现的题目
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");
  相关解决方案