集册 Java实例教程 从bean对象获取属性值。

从bean对象获取属性值。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

545
从bean对象获取属性值。

/**   

 *  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.nowjava;

import java.beans.BeanInfo;/*from nowjava - 时代Java*/

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);

        }
        /*来自 
         nowjava - 时  代  Java*/

        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) 
展开阅读全文