Назад к вопросам
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) |