Назад к вопросам
Junior
69
questionbank

В чем отличие обычного объекта от JavaBean?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Отличие заключается в соблюдении соглашений именования (заглавная буква после "get/set/is") для методов доступа к свойствам, наличии конструктора без аргументов и сериализуемости. Это позволяет использовать JavaBean'ы с фреймворками и инструментами, основанными на интроспекции.

Обычный объект может не следовать этим правилам.

public class SimpleObject {
    private String name;

    public SimpleObject(String name) { // Любой конструктор
        this.name = name;
    }

    public String retrieveName() { // Не стандартное именование get
        return name;
    }
}
import java.io.Serializable;

public class JavaBean implements Serializable { // Сериализуемый
    private String name;

    public JavaBean() { // Конструктор без аргументов
    }

    public String getName() { // Стандартное именование getter'а
        return name;
    }

    public void setName(String name) { // Стандартное именование setter'а
        this.name = name;
    }
}

Ключевые отличия:

Критерий Обычный объект JavaBean
Конструктор без args Не обязательно Обязательно
Именование методов Любое get/set/is + имя свойства
Сериализуемость Не обязательно Желательно/Обязательно для некоторых фреймворков
Использование Общее назначение Компонентная модель, фреймворки (Spring, поздавшее EJB)