Java examples for Reflection:Java Bean
Gets the value of property from the bean object.
/** /*from ww w .j a v a 2s . com*/ * Copyright (c) 2005-2014 VedantaTree all rights reserved. * * This file is part of ExpressionOasis. * * ExpressionOasis is free software. You can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * ExpressionOasis is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE * OR OTHER DEALINGS IN THE SOFTWARE.See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with ExpressionOasis. If not, see <http://www.gnu.org/licenses/>. * * Please consider to contribute any enhancements to upstream codebase. * It will help the community in getting improved code and features, and * may help you to get the later releases with your changes. */ //package com.java2s; import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.InvocationTargetException; public class Main { /** * Gets the value of property from the bean object. * * @param bean the object of bean class whose property is to access. * @param property the name of property. * @return the value of property. * @throws IntrospectionException * @throws IllegalArgumentException * @throws IllegalAccessException * @throws InvocationTargetException */ public static final Object getPropertyValue(Object bean, String property) throws IntrospectionException, IllegalArgumentException, IllegalAccessException, InvocationTargetException { Object propertyValue = null; PropertyDescriptor descriptor = getPropertyDescriptor( bean.getClass(), property); if (descriptor != null && descriptor.getReadMethod() != null) { propertyValue = descriptor.getReadMethod().invoke(bean, null); } return propertyValue; } /** * Gets the property descriptor for the property name from given class. * * @param beanClass the class of bean * @param property the name of property. * @return the property descriptor if property name found else return <code>null</code>. * @throws IntrospectionException */ public static final PropertyDescriptor getPropertyDescriptor( Class beanClass, String property) throws IntrospectionException { BeanInfo beanInfo = Introspector.getBeanInfo(beanClass); PropertyDescriptor[] descriptors = beanInfo .getPropertyDescriptors(); int length = descriptors == null ? 0 : descriptors.length; for (int i = 0; i < length; i++) { if (descriptors[i].getDisplayName().equals(property)) { return descriptors[i]; } } return null; } }