
public class Test {
public static void main(String[] args) {
int a,b; a=4; b=5; method(a,b); System.out.println("a="+ a +" b=" + b); // a=400 b=500 } }
1 lihongjie0209 2019 年 1 月 9 日 少吃 锻炼括约肌 |
2 abai 2019 年 1 月 9 日 @lihongjie0209 +1 |
3 jackchao7432 2019 年 1 月 9 日 引用传递 |
4 zhenwang 2019 年 1 月 9 日 via iPhone static void method(int a, int b) { System.out.println("a = 400, b = 500"); System.exit(0); } |
5 zhenwang 2019 年 1 月 9 日 via iPhone 皮了一下,没看到 method 不能用 print |
6 xpresslink OP @w4ngzhen 没关系。我现在也卡住了。 |
7 TtTtTtT 2019 年 1 月 9 日 Java 不支持多返回值,也没有原生指针。 所以大概是没有法子了。。 |
8 ech0x 2019 年 1 月 9 日 @lihongjie0209 #1 真的笑出声 |
9 amoia50 2019 年 1 月 9 日 public class Test { public static void main(String[] args) { Integer a; b; a=4; b=5; method(a,b); System.out.println("a="+ a +" b=" + b); // a=400 b=500 } } |
10 amoia50 2019 年 1 月 9 日 public class Test { public static void main(String[] args) { Integer a = 4; Integer b = 5; method(a,b); System.out.println("a="+ a +" b=" + b); } public static void method(Integer a, Integer b){ a = 400; b = 500; } } |
11 xpresslink OP @amoia50 这个简单用反射就可以了。我就想问 int |
12 zhenjiachen 2019 年 1 月 9 日 <script src="https://gist.github.com/chenzhenjia/e8a3456c9ac35c3eb6b6b980e9789609.js"></script> |
13 wxkvEX 2019 年 1 月 9 日 如果 a 和 b 可以声明为 Integer 类型,那么 method 里 面用反射可以实现对值的修改。 基本类型束手无策,坐等大神演示,我觉得可能性很小。 另外楼上是来搞笑的么…… |
14 yukiww233 2019 年 1 月 9 日 System.out.write("a = 400, b = 500\n".getBytes()); System.exit(0); |
15 kaleidoscope 2019 年 1 月 9 日 包装类的时候可以 不是的话不知道了。。 |
17 tearslee 2019 年 1 月 9 日 java 的基本数据类型不能够引用传递 |
18 rizon 2019 年 1 月 9 日 最常用的就是数组了 ```java int[] a=[5]; int[] b=[6]; void method(int[] a,int[] b){ a[0]=6; b[0]=5; } print(a,b); ``` |
20 Raymon111111 2019 年 1 月 9 日 因为 method 和 main 还同属一个线程(thread) 1. 理论上应该是可以在当前线程拿到栈信息(stack) --- 但是怎么做? 2. 回推 a 和 b 在哪 --- 但是怎么做?? 3. 然后用某种 native 的方法(类似 unsafe) 修改值 --- 但是怎么做??? |
21 ahao99 2019 年 1 月 9 日 有个想法,System.out 是个静态对象 PrintStream 反射修改这个类的 println 方法,不知道是否可以 |
22 5CanTell 2019 年 1 月 9 日 放到包装类里... |
23 rb6221 2019 年 1 月 9 日 返回一个长度为 2 的数组 我一般这么干 |
24 ourzhang 2019 年 1 月 9 日 在 method 方法中把重新赋值不就可以了么? 10 楼不是已经给出答案了么? |
26 DsuineGP 2019 年 1 月 9 日 com.sun.jdi.StackFrame 直接写栈帧的变量,应该跟 debuger 一个原理 |
27 xpresslink OP @DsuineGP 嗯,高手啊,就想知道这种真正的 hacker 方法。 |
28 Yiki 2019 年 1 月 9 日 我是进来看标题的 |
29 VoidChen 2019 年 1 月 9 日 还有个更无耻的,写个 Lambda 传进去,lambda 里面写 sysout |
30 mmdsun 2019 年 1 月 9 日 via Android 楼主意思是,通过反射,修改方法中的局部变量? |