Java BeanUtils - Sfondo

Descrizione

I JavaBeans standard del linguaggio Java possono essere utilizzati per accedere ai valori delle proprietà dei bean utilizzando i metodi getter appropriati. Il linguaggio Java fornisce la classe java.beans.Introspector per controllare una classe Java in fase di runtime. Indica i nomi delle proprietà dei metodi getter e setter insieme alle capacità di Reflection di chiamare dinamicamente tali metodi. È possibile utilizzare l'acquisizione e l'impostazione delle proprietà dei bean in modo dinamico utilizzando le API nel pacchetto BeanUtils.

I tipi di proprietà JavaBean sono divisi in tre tipi (alcuni tipi di proprietà sono supportati dalla specifica JavaBeans e alcuni sono supportati dal pacchetto BeanUtils):

  • Simple: Le proprietà semplici contengono un valore singolo che può essere recuperato o modificato. È possibile utilizzare un tipo di proprietà come la primitiva del linguaggio Java come int, un oggetto semplice come java.lang.String o un oggetto complesso specificato utilizzando il linguaggio Java, un'applicazione o una libreria di classi con l'applicazione.

  • Indexed: Una raccolta ordinata di oggetti può essere memorizzata nella proprietà indicizzata a cui è possibile accedere individualmente utilizzando un indice o pedice a valore intero, non negativo. Il pacchetto BeanUtils include il tipo di dati denominato java.util.List deve essere indicizzato nella specifica JavaBeans.

  • Mapped: Il pacchetto BeanUtils contiene il tipo di dati chiamato java.util.Map che dovrebbe essere mappato nelle API JavaBeans standard e i singoli valori possono essere impostati e accessibili utilizzando una chiave con valori di stringa.

È possibile ottenere e impostare i valori delle proprietà per i tipi di dati utilizzando i metodi API specificati nella classe PropertyUtils . Considera il seguente frammento di codice di due classi di bean definite con metodi getter e setter :

public class Employee {
   public FullName getFullName();
   public void setFullName(String type, FullName fullname);
   public Employee getSubordinate(int index);
   public void setSubordinate(int index, Employee subordinate);
   public String getFirstName();
   public void setFirstName(String first_name);
   public String getLastName();
   public void setLastName(String last_name);
}