为什么 javabean 特性没有内置到根 JAVA 对象中?
Why aren't javabean features built into the root JAVA object?
我很难理解为什么 javabean 是必需的以及为什么他们不直接将 javabean 功能直接放入对象 class(root class) 在 java?
我的理解是,您将一个对象(实例)变成了一个 java bean,这样您就可以获得 bean 中所有对象的所有好处,例如可序列化等等。但如果是这样的话,为什么还要为此创建一个单独的 bean class,为什么不直接内置到根对象中 class?
还是我没看懂?
你没有理解正确。
没有作为 bean 的实际 Java class 或接口。它只是一种模式,一种约定。
bean 约定基本上是 class 将 public 仅通过 public getXxx 和 setXxx 方法公开其部分或全部属性,其中 XXX 是 属性.
Bean 通常应该是可序列化的,但是任何 class 都可以是可序列化的,并且不需要遵循 bean 约定。
只是谈谈 bean 模式的无参数构造函数部分:默认情况下 class 确实有一个无参数构造函数,但是一旦您创建另一个构造函数,它就会有效地删除它,因为你可能知道。但是如果你被迫总是有一个无参数的构造函数,如果你有一个 class 并且有一个由构造函数中的参数分配的最终字段,这将非常烦人。然后你需要有一些无参数构造函数,它要么将所有内容分配给 null,要么抛出异常告诉其他开发人员不要使用无参数,这很丑陋。
除了 Grey 的回答:即使会有 Bean 接口或方法 - 并非每个水果都是苹果!
意思是:有无数个 类 不是豆子就好了。
除此之外:java 的序列化通常被发现没有多大帮助。现在我们大多序列化为 JSON 是有充分理由的。换句话说:我们很高兴现在并非所有 类 默认都实现 Serializeable;因为 Object 是一个 Bean。
我很难理解为什么 javabean 是必需的以及为什么他们不直接将 javabean 功能直接放入对象 class(root class) 在 java?
我的理解是,您将一个对象(实例)变成了一个 java bean,这样您就可以获得 bean 中所有对象的所有好处,例如可序列化等等。但如果是这样的话,为什么还要为此创建一个单独的 bean class,为什么不直接内置到根对象中 class?
还是我没看懂?
你没有理解正确。 没有作为 bean 的实际 Java class 或接口。它只是一种模式,一种约定。
bean 约定基本上是 class 将 public 仅通过 public getXxx 和 setXxx 方法公开其部分或全部属性,其中 XXX 是 属性.
Bean 通常应该是可序列化的,但是任何 class 都可以是可序列化的,并且不需要遵循 bean 约定。
只是谈谈 bean 模式的无参数构造函数部分:默认情况下 class 确实有一个无参数构造函数,但是一旦您创建另一个构造函数,它就会有效地删除它,因为你可能知道。但是如果你被迫总是有一个无参数的构造函数,如果你有一个 class 并且有一个由构造函数中的参数分配的最终字段,这将非常烦人。然后你需要有一些无参数构造函数,它要么将所有内容分配给 null,要么抛出异常告诉其他开发人员不要使用无参数,这很丑陋。
除了 Grey 的回答:即使会有 Bean 接口或方法 - 并非每个水果都是苹果!
意思是:有无数个 类 不是豆子就好了。
除此之外:java 的序列化通常被发现没有多大帮助。现在我们大多序列化为 JSON 是有充分理由的。换句话说:我们很高兴现在并非所有 类 默认都实现 Serializeable;因为 Object 是一个 Bean。