Listing attributes of a bean with Java Bean’s introspection API

Sometimes it is required to list entire attributes of a bean. They are usually fields of a bean with setters and getters. but this isn’t a requirement to list the attributes of a bean using Java Bean’s Introspection API. Setters and getters define the attributes of a bean and not actual attributes. The mapping utilities use Java Bean’s Introspection API to list attributes of bean using setters and getters.

Listing attributes of a bean: Here is an example to show how to list properties of DashBoard bean.

1.Java Bean

package com.jminded.beanInfo;

import java.io.Serializable;
/**
 * 
 * @author Umashankar
 * https://jminded.com
 */
public class DashBoard implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private String taskId;
	
	private String taskName;
	
	private String teamName;
	
	private int qaDefects;
	
	private String projectStatus;

	public String getTaskId() {
		return taskId;
	}

	public void setTaskId(String taskId) {
		this.taskId = taskId;
	}

	public String getTaskName() {
		return taskName;
	}

	public void setTaskName(String taskName) {
		this.taskName = taskName;
	}

	public String getTeamName() {
		return teamName;
	}

	public void setTeamName(String teamName) {
		this.teamName = teamName;
	}

	public int getQaDefects() {
		return qaDefects;
	}

	public void setQaDefects(int qaDefects) {
		this.qaDefects = qaDefects;
	}

	public String getProjectStatus() {
		return projectStatus;
	}

	public void setProjectStatus(String projectStatus) {
		this.projectStatus = projectStatus;
	}
	
	public String getResource() {
		return null;
	}	
}

2. Listing Attributes of Bean

package com.jminded.beanInfo;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.util.ArrayList;
import java.util.List;
/**
 * 
 * @author Umashankar
 * https://jminded.com
 */
public class ListAttributesofBean {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
      
		try {
		    
	        BeanInfo bi = Introspector.getBeanInfo(DashBoard.class);
	        PropertyDescriptor[] pds = bi.getPropertyDescriptors();
	        List<String> beanAttributes=new ArrayList<String>();
	        for (int i=0; i<pds.length; i++) {
	            // Get property name
	            String propName = pds[i].getName();
	            beanAttributes.add(propName);
	        }
	        for(String beanAttr:beanAttributes){
	        	System.out.print(":"+beanAttr+":");
	        }
	    } catch (java.beans.IntrospectionException e) {
	    	System.err.println(e.getMessage());
	    }
	}
}

3.Output

:class::projectStatus::qaDefects::resource::taskId::taskName::teamName:

Leave a Comment