Пакет java.beans содержит классы и интерфейсы, связанные с компонентами JavaBeans
Эти классы помогают редактору бина создавать пользовательский интерфейс, который пользователь может использовать для настройки бина
Например, бин может содержать свойство специального типа, который редактор бина может не знать, как обрабатывать. Используя интерфейс PropertyEditor, разработчик бина может предоставить редактор для этого специального типа
Классы в пакете java.beans также могут использоваться для долгосрочного сохранения бина - чтения и записи бина в виде текстового представления его свойств
Классы в пакете java.beans могут использоваться инструментами, которые манипулируют бинами, а не самими бинами
Например, класс Introspector используется для получения информации о бине и свойствах, событиях и методах, которые он экспортирует
Большинство этой информации возвращается с помощью класса FeatureDescriptor и его различных подклассов
Все бины должны быть сериализуемыми, иметь конструктор без аргументов и позволять доступ к свойствам с помощью методов getter и setter
Пример кода на java, который использует пакет java.beans:
import java.beans.*;
public class MyBean {
private String name;
private int age;
public MyBean() {
name = "John";
age = 30;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
MyBean bean = new MyBean();
try {
BeanInfo info = Introspector.getBeanInfo(MyBean.class);
for (PropertyDescriptor pd : info.getPropertyDescriptors()) {
System.out.println(pd.getName() + ": " + pd.getReadMethod().invoke(bean));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}