Java 为什么我不能传递相对于地块/序列对象的参考地址?
根据StackOverflow和internet,传递对象的方式是序列化或打包(或使用“静态”——不赞成) 我想知道为什么我不能通过这个地址Java 为什么我不能传递相对于地块/序列对象的参考地址?,java,android,Java,Android,根据StackOverflow和internet,传递对象的方式是序列化或打包(或使用“静态”——不赞成) 我想知道为什么我不能通过这个地址 MainActivity.toString(); // MainActivity@b0ff5f80 那么,在新类/活动中,只需更改新创建对象的地址 MainActivity originalMainActivity = new MainActity(); originalMainActivity = getIntent.getStringEx
MainActivity.toString(); // MainActivity@b0ff5f80
那么,在新类/活动中,只需更改新创建对象的地址
MainActivity originalMainActivity = new MainActity();
originalMainActivity = getIntent.getStringExtra("originalMainActivity");
//yes I realize the above line is incompatible....Obj != String
如果对象已经创建并且位于堆中(我想是??)
为什么我们不能重新分配地址?如果可以,请有人举个例子?多谢各位
p、 (毕竟,当我们在构造函数中传递类对象时,我们实际上并没有传递ref address)Thx
那么,在新类\活动中,只需更改新创建对象的地址
MainActivity originalMainActivity = new MainActity();
originalMainActivity = getIntent.getStringExtra("originalMainActivity");
//yes I realize the above line is incompatible....Obj != String
除其他原因外,这在Java中是不可能的
那么,在新类\活动中,只需更改新创建对象的地址
MainActivity originalMainActivity = new MainActity();
originalMainActivity = getIntent.getStringExtra("originalMainActivity");
//yes I realize the above line is incompatible....Obj != String
除其他原因外,这在Java中是不可能的
那么,在新类\活动中,只需更改新创建对象的地址
MainActivity originalMainActivity = new MainActity();
originalMainActivity = getIntent.getStringExtra("originalMainActivity");
//yes I realize the above line is incompatible....Obj != String
除其他原因外,这在Java中是不可能的
那么,在新类\活动中,只需更改新创建对象的地址
MainActivity originalMainActivity = new MainActity();
originalMainActivity = getIntent.getStringExtra("originalMainActivity");
//yes I realize the above line is incompatible....Obj != String
其他原因,因为在java中是不可能的。
你似乎是在思考地址,好像你在C或C++中。 然而:toString
的用途:在一般情况下,toString
的唯一有效用途是打印对象的表示,用于调试目的。没有什么可以说明该字符串可以在以后用于重新生成或再次查找对象此外,您应该了解,当您从
包裹中取出一个对象时,您不一定处于同一进程中(即使是您的进程,您的进程在重新启动之前可能已被后台终止),因此您的方法只能在有限的情况下工作。您似乎在考虑地址,就好像你在C或C++一样。
然而:
您完全误解了toString
的用途:在一般情况下,toString
的唯一有效用途是打印对象的表示,用于调试目的。没有什么可以说明该字符串可以在以后用于重新生成或再次查找对象
Java语言不提供任何访问内存地址的方法,部分原因是垃圾收集器通常可以自由地重新排列内存。解决这个问题的唯一方法是固定对象并在Java语言之外进行操作
此外,您应该了解,当您从包裹中取出一个对象时,您不一定处于同一进程中(即使是您的进程,您的进程在重新启动之前可能已被后台终止),因此您的方法只能在有限的情况下工作。您似乎在考虑地址,就好像你在C或C++一样。
然而:
您完全误解了toString
的用途:在一般情况下,toString
的唯一有效用途是打印对象的表示,用于调试目的。没有什么可以说明该字符串可以在以后用于重新生成或再次查找对象
Java语言不提供任何访问内存地址的方法,部分原因是垃圾收集器通常可以自由地重新排列内存。解决这个问题的唯一方法是固定对象并在Java语言之外进行操作
此外,您应该了解,当您从包裹中取出一个对象时,您不一定处于同一进程中(即使是您的进程,您的进程在重新启动之前可能已被后台终止),因此您的方法只能在有限的情况下工作。您似乎在考虑地址,就好像你在C或C++一样。
然而:
您完全误解了toString
的用途:在一般情况下,toString
的唯一有效用途是打印对象的表示,用于调试目的。没有什么可以说明该字符串可以在以后用于重新生成或再次查找对象
Java语言不提供任何访问内存地址的方法,部分原因是垃圾收集器通常可以自由地重新排列内存。解决这个问题的唯一方法是固定对象并在Java语言之外进行操作
此外,您应该了解,当您从包裹
中取出对象时,您不一定处于同一进程中(即使是您的进程,您的进程在重新启动之前可能已被后台终止)-因此,您的方法只能在有限的情况下工作。我明白了,因此,错误在于将Class.toString()地址视为对象的永久地址。那么当我在构造函数中传递一个类对象时呢?我到底通过了什么?为清楚起见,请使用Thx。您正在传递对对象的引用,但使用该引用可以做的唯一事情是将其指定给另一个对象,或者访问它所指向的对象。我明白了,所以错误在于将Class.toString()地址视为对象的永久地址。那么当我在构造函数中传递一个类对象时呢?我到底通过了什么?为了清晰起见,Thx。您正在传递对对象的引用,但使用该引用所能做的唯一事情是将其指定给指向d