JavaBean到底是什么?
我认为,我明白,“Bean”是一个Java类,具有属性和getters/setters。
据我所知,它相当于C 。这是真的吗?struct
另外,a和正则之间是否存在真正的语法差异?
是否有任何特殊定义或?JavaBean
class
Interface
基本上,为什么有一个术语?
另外,界面是什么意思?Serializable
我认为,我明白,“Bean”是一个Java类,具有属性和getters/setters。
据我所知,它相当于C 。这是真的吗?struct
另外,a和正则之间是否存在真正的语法差异?
是否有任何特殊定义或?JavaBean
class
Interface
基本上,为什么有一个术语?
另外,界面是什么意思?Serializable
JavaBean只是一个标准。它是一个普通的Java,除了它遵循某些约定:class
可序列化
。就是这样。这只是一个惯例。不过,许多图书馆都依赖于它。
关于 ,从 API 文档中可以看出:Serializable
类的可序列化性由实现 java.io.Serializable 接口的类启用。不实现此接口的类将不会序列化或反序列化其任何状态。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。
换句话说,可序列化的对象可以写入流,因此可以写入文件,对象数据库,实际上任何东西。
此外,JavaBean和另一个类之间没有语法上的区别 - 如果一个类遵循标准,那么它就是JavaBean。
它有一个术语,因为该标准允许库以编程方式使用您以预定义的方式定义的类实例执行操作。例如,如果一个库想要将你传递给它的任何对象进行流式处理,它知道它可以,因为你的对象是可序列化的(假设库要求你的对象是正确的JavaBeans)。
有一个术语可以让它听起来很特别。现实远没有那么神秘。
基本上,一个“豆子”:
java.io.Serializable
,并且正确地做到了这一点),即getFoo()
至于:那只不过是一个“标记接口”(一个不声明任何函数的接口),它告诉Java实现类同意(并暗示它能够)“序列化” - 一个将实例转换为字节流的过程。这些字节可以存储在文件中,通过网络连接等发送,并且有足够的信息来允许JVM(至少是知道对象类型的JVM)稍后重建对象 - 可能在应用程序的不同实例中,甚至在整个其他机器上!Serializable
当然,为了做到这一点,班级必须遵守某些限制。其中最主要的是,所有实例字段都必须是基元类型(int,bool等),也可以是也可以序列化的某个类的实例,或者标记为Java不会尝试包含它们。(这当然意味着田野不会在溪流上幸存下来。具有字段的类应准备好在必要时重新初始化这些字段。transient
transient
transient
一个不能遵守这些限制的类不应该实现(而且,IIRC,Java编译器甚至不会让它这样做。Serializable