JavaBean除了getter和setter之外还有其他方法吗?

根据我在网上找到的定义,JavaBean是一个满足以下条件的Java类:

  • 所有实例属性都是私有的
  • 所有的实例属性都有公共的getter和setter
  • 该类有一个无参数的构造函数
  • 该类实现Serializable接口
  • 我想知道的是, 如果我将方法添加到Javabean中,我们仍然可以将它称为Javabean?

    例如, 我们可以说下面的类是JavaBean吗?

    public class Person implements Serializable {
        private String name;
        public Person(){}
        public String getName(){...}
        public void setName(String name){...}
        public void sayHello(){}
    }
    

    是的,Java Bean肯定会有行为。 没有附加方法的Java Bean类具有非常有限的适用性,因为它们封装了没有有用行为的数据。

    Oracle在其关于Java Bean的教程之一中提到了这一点:

    一个bean的方法是它可以做的事情。 任何不属于属性定义的公共方法都是一个bean方法。 在NetBeans等构建工具的上下文中使用bean时,可以将bean的方法用作应用程序的一部分。 例如,你可以连线一个按钮来调用你的一个bean的方法。


    是的,Java bean可以有其他功能。 引入了约定来以结构化的方式访问属性,并添加了否决等功能。 它用于例如swing中的GUI组件,其中bean机制用于配置GUI元素。 特别是在GUI编辑器中,需要动态访问未知属性。 当然,这些GUI组件有很多功能。 如果您限制为您的条件集,您会得到什么是DTO(数据传输对象),它仅传输数据,但没有附加功能。

    链接地址: http://www.djcxy.com/p/47655.html

    上一篇: Can a JavaBean have methods besides getters and setters?

    下一篇: JavaBean equivalent in Python