为什么可以';我们不能用Java序列化这些方法吗?

为什么可以';我们不能用Java序列化这些方法吗?,java,serialization,Java,Serialization,序列化是一种存储对象状态的机制。基于这个定义,我们可以说对象中的实例变量可以序列化。 方法是类的行为 我们可以使用这些方法设置和获取对象的状态。因此,这些方法与类的实例变量相关 那么为什么我们不能用Java序列化这些方法呢?序列化这些方法之后,您打算做什么?根据定义,对象的状态必须为仅其成员。他们的行为不会出现在画面中。序列化是保存对象的状态,而不是其行为。方法总是序列化的:作为类文件中的字节码。实际上不需要再次序列化它们。因为方法对于类的所有实例都是相同的,它们只由其数据驱动。如果你的应用程序

序列化是一种存储对象状态的机制。基于这个定义,我们可以说对象中的实例变量可以序列化。 方法是类的行为

我们可以使用这些方法设置和获取对象的状态。因此,这些方法与类的实例变量相关


那么为什么我们不能用Java序列化这些方法呢?

序列化这些方法之后,您打算做什么?根据定义,对象的状态必须为仅其成员。他们的行为不会出现在画面中。序列化是保存对象的状态,而不是其行为。

方法总是序列化的:作为类文件中的字节码。实际上不需要再次序列化它们。

因为方法对于类的所有实例都是相同的,它们只由其数据驱动。如果你的应用程序中有类定义,你就有它的方法


但是数据可以在不同的实例之间更改。

每个方法都没有任何状态,序列化方法调用不能用于任何事情。另一方面,序列化线程在概念上是计算的快照或检查点,这很有用


然而,线程在Java中是不可序列化的,实现这一点非常困难。(例如,您将如何处理一个活动方法的代码在序列化和反序列化线程之间发生更改的情况?

从OOP的角度来看,对象的状态是其非静态字段的总状态。方法是定义对象行为的一种方式,对于该类的所有实例(对象)都是通用的,因此它们被定义为类对象上的字段,而不是对象(实例)本身的字段。因此,序列化对象将存储其状态,因此仅存储其字段,但如果序列化对象的类对象,则将序列化这些对象的方法(我认为没有理由有人费心这么做)。

当您有一个多态对象时,它的类型不符合状态吗?@Alexandre:你说的多态对象是什么意思?好的,在java中,一切都是多态的。我的意思是实现特定接口的对象可能不同。它们实现接口的方式可以序列化。这些方法已经以类文件的形式持久化。