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);
}
1
Lonely 2017-02-14 17:13:28 +08:00 via iPhone 1
直接打印两句然后 System.exit
|
2
LaudOak 2017-02-14 17:28:15 +08:00
遇到过这样的,要实现你说的效果就是函数里实现后 System.exit(0);
|
3
DeadLion OP ```
public static void method(int a, int b) { System.out.println("a=100"); System.out.println("b=100"); System.exit(0); } ``` @Lonely 哈哈哈 可以可以 |
4
islandev 2017-02-14 17:31:35 +08:00
可以传引用不。
|
8
zhengjian 2017-02-14 17:36:40 +08:00
|
11
gam2046 2017-02-14 21:32:47 +08:00 1
面试就是绞尽脑汁出这种反人类的题么?如果以后的产品里都写这么蛋疼的代码,吃枣药丸。谁接盘谁死......
出题不从实际需求出发...... |
12
murmur 2017-02-14 21:43:05 +08:00
这是在考脑筋急转弯还是编程。。
|