为什么根JAVA对象中没有内置javabean功能?

时间:2017-04-19 01:39:22

标签: java spring class object javabeans

我很难理解为什么javabeans是必要的以及他们为什么不直接将javabean特性放入java中的对象类(根类)?

我的理解是你将一个对象(实例)变成了一个java bean,这样你就可以获得bean中所有对象的所有好处,比如serializable等等。但是如果是这样的话,为什么甚至为此都有一个单独的bean类,为什么不只是内置到根对象类中呢?

或者我不明白这个?

3 个答案:

答案 0 :(得分:2)

你没有正确理解它。 没有实际的Java类或接口是bean。它只是一种模式,一种惯例。

bean约定基本上是一个类将通过公共getXxx和setXxx方法公开公开其部分或全部属性,其中XXX是属性的名称。

Beans通常应该是可序列化的,但任何类都可以序列化,并且不需要遵循bean约定。

答案 1 :(得分:1)

除了Gray的回答:即使有一个Bean界面或方法 - 并不是每个水果都是苹果!

含义:有数以万计的类很好,不是bean。

除此之外:像java一样的序列化通常被认为没那么有用。有很好的理由说明我们现在大多数时候都会序列化为JSON。换句话说:我们非常高兴现在并非所有类都默认实现Serializeable;因为Object是一个Bean。

答案 2 :(得分:0)

谈谈bean模式的无参数构造函数部分:默认情况下,类确实有一个无参数构造函数,但是一旦你创建了另一个构造函数,就会有效地删除它,就像你可能知道的那样。但是如果你被迫总是有一个无参数的构造函数,那么如果你有一个具有由构造函数中的参数赋值的final字段的类,那将会非常烦人。然后你需要有一些没有参数的构造函数,它可以将所有东西都分配给null,或者抛出一个异常来告诉其他开发人员不要使用no参数,这只是丑陋。