Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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中的可序列化可变类型_Java_Serialization - Fatal编程技术网

java中的可序列化可变类型

java中的可序列化可变类型,java,serialization,Java,Serialization,我有一个标记为Serializable的类,即该类实现Serializable接口。此类有一些类型为Serializable的变量。我无法理解为什么这些变量是可序列化类型。我知道可序列化接口。请把这个概念讲清楚。这将是一个很大的帮助。我的班级是- public class DestinationGroups implements java.io.Serializable { private int id; private Serializable name;// why seriali

我有一个标记为Serializable的类,即该类实现Serializable接口。此类有一些类型为Serializable的变量。我无法理解为什么这些变量是可序列化类型。我知道可序列化接口。请把这个概念讲清楚。这将是一个很大的帮助。我的班级是-

public class DestinationGroups  implements java.io.Serializable {


 private int id;
 private Serializable name;// why serializable here??
 private Serializable description;// why serializable here??
 private BigDecimal rating;
 private Set destinationses = new HashSet(0);
 private Set destinationGroupRatingses = new HashSet(0);

 public DestinationGroups() {
 }


 public DestinationGroups(int id) {
    this.id = id;
 }

 ..........other code..............
}

如果要序列化一个类,它的所有属性都必须是可序列化的。使用此用法,您可以保证使所有属性
可序列化

如果名称是不可序列化的对象,则无法序列化整个类。

什么是序列化?
序列化基本上是将一个对象转换为
字节
,从而使该对象易于保存、共享或流式传输

为什么类中的属性必须可序列化?
这意味着,可序列化对象中的所有组件本身都必须是可序列化的,否则将破坏可序列化约定


查找和进一步序列化信息。

@JordiCastilla的回答解释了什么是可序列化的,但没有解释它出现在这里的原因

这里真正的问题是Hibernate对
NVARCHAR
的默认映射。在最新版本(即Hibernate 4.2及更高版本)中,
NVARCHAR
映射到
String
。在旧版本中,Hibernate将
NVARCHAR
映射到
Serializable

如果您使用Hibernate代码生成插件生成Java代码,那么解决方案是编辑插件的“Hibernate.reveng.xml”,如下所述:

另一方面,如果您在运行时对Hibernate映射
NVARCHAR
有问题,那么此问答可能会有所帮助:


如果您编写了该类,但不知道为什么将变量定义为可序列化的,谁会知道呢?我没有编写该类。这是hibernate自动生成的类。它是从什么自动生成的?数据库模式?它如何定义有问题的列?我同意人们会期望类似于
String
bigdecimic
的东西。至于需要序列化字段:如果你想序列化一个类及其字段,那么字段也必须是可序列化的。原语在默认情况下是可序列化的,而类如
BigDecimal
等实现了
serializable
。您以前做过哪些研究?如果您“知道”可序列化接口;是什么阻止你搜索互联网?你为什么要我们解释;如果你能研究整个主题。。。你一个人吗?(stackoverlfow的存在不是为了教学,它的存在是为了帮助解决具体问题)。真正的问题(至少对我来说)是为什么nvarchar(max)没有被转换成字符串。这正是我想要的。谢谢@Stephen CYou实际上无法编译该应用程序。