Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果类包含一个字段“0”,如何使其可序列化;“对象”;_Java - Fatal编程技术网

Java 如果类包含一个字段“0”,如何使其可序列化;“对象”;

Java 如果类包含一个字段“0”,如何使其可序列化;“对象”;,java,Java,它包含不可序列化的“对象”,因此类A将被呈现为不可序列化 “对象值”可以是整数、字符串…,具体取决于“类型” 如何使文件可序列化? 提前谢谢 编辑: 如果使用“私有瞬态对象值”,是否会丢失“对象值”(反序列化时)?我不想把它弄丢 是否存在常规可序列化对象类型?您可以使用transient关键字跳过字段的序列化: public class A implements Serializable { private static final long serialVersionUID = 1L;

它包含不可序列化的“对象”,因此类A将被呈现为不可序列化

“对象值”可以是整数、字符串…,具体取决于“类型”

如何使文件可序列化? 提前谢谢

编辑: 如果使用“私有瞬态对象值”,是否会丢失“对象值”(反序列化时)?我不想把它弄丢


是否存在常规可序列化对象类型?

您可以使用transient关键字跳过字段的序列化:

public class A implements Serializable
{
    private static final long serialVersionUID = 1L;
    private Object value;
    private Type type;
....
}

transient
关键字服务器

private transient Object value;
另一种方法是,如果对象不代表您的实例,则将其设置为静态。静态变量是隐式的
瞬态的

如果使用“私有瞬态对象值”,是否会丢失“对象值”(反序列化时)?我不想把它弄丢

如果不序列化变量,其值将丢失。序列化保存类实例的状态。当实例将被反序列化时,它将包含对象值,但它将被初始化为默认值,即null。因此,是的,值将丢失,这就是变量瞬态的目的

“对象值”可以是整数、字符串

整数和字符串都是可序列化的。它会起作用的。您不需要做任何特殊的事情来序列化它们

是否存在通用的可序列化对象类型

是的,可序列化:

private transient Object value;

Java对此有一个特定的关键字,transient。谢谢Juvanis。如果使用“私有瞬态对象值”,是否会丢失“对象值”(反序列化时)?我不想丢失它。@user2179277:对象序列化不允许使用的变量。因此,在反序列化之后,值的状态将始终默认。例如,变量x的值设置为9,它的默认值为“0”,例如,当对象已序列化且x的值为9时,反序列化后将默认为“0”,我尝试通过网络以消息的形式发送(到JMS队列)并且没有可序列化的异常。@user2179277然后您试图序列化其他不是整数或字符串的内容。但是整数和字符串都是可序列化的。@user2179277您是否混淆了
int
Integer
?第一个是基元,第二个是类。@Takendarkk如果对象变量没有变为整数,就不能将int赋值给它,因此这不可能是“不可序列化”问题的原因。我知道自动装箱的问题。我只是不确定OP是否运行了他显示的确切代码。
private Serializable value;