public class Test {
public static void main(String[] args) {
int a = 10;
int b = 10;
//调用 method 方法后,最后分别输出 100,200
method(a, b);
System.out.println("a=" + a); //a=100
System.out.println("b=" + b); //b=200
}
public static void method(int a, int b) {
}
}
有一种方法就是重写 println 方法,有能更改值的方法么? 一开始想到反射,但是方法内的局部变量好像获取不到吧。 不知道还有没有其他方法
public static void method(int a, int b) {
PrintStream ps = new PrintStream(System.out) {
@Override
public void println(String s) {
if (s.startsWith("a")) {
super.println("a=100");
}
if (s.startsWith("b")) {
super.println("b=200");
}
}
};
System.setOut(ps);
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.