首页 文章

除了getter和setter之外,JavaBean还能有方法吗?

提问于
浏览
4

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

  • 所有实例属性都是私有的

  • 所有实例属性都有公共getter和setter

  • 该类有一个无参数构造函数

  • 该类实现了Serializable接口

我想知道的是 if I add method to a Javabean can we still call it a Javabean?

例如 can we say that the following class is a JavaBean?

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

2 回答

  • 7

    是的,Java Bean肯定有行为 . 没有其他方法的Java Bean类的适用性非常有限,因为它们封装了没有有用行为的数据 .

    Oracle mentions this in one of their tutorials on Java Beans

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

  • 2

    是的,java bean可以有其他功能 . 引入该约定以结构化方式访问属性并添加诸如否决之类的功能 . 它用于例如swing中的GUI组件,其中bean机制用于配置GUI元素 . 特别是在GUI编辑器中,需要动态访问未知属性 . 当然,这些GUI组件具有许多功能 . 如果限制条件,则获得的是DTO(数据传输对象),它只传输数据但没有其他功能 .

相关问题