集册 Java实例教程 将属性的值设置为bean的对象

将属性的值设置为bean的对象

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

585
将属性的值设置为bean的对象
/** nowjava.com - 时代Java 提 供 **/

/**   

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

import java.beans.IntrospectionException;

import java.beans.Introspector;

import java.beans.PropertyDescriptor;

import java.lang.reflect.InvocationTargetException;


public class Main {



    /**

     * Sets the value of property to the object of bean

     * 

     * @param bean the bean object whose proeprty is to set.

     * @param property the name of property.

     * @param value the value to set for the property.

     * @throws IntrospectionException

     * @throws IllegalArgumentException

     * @throws IllegalAccessException

     * @throws InvocationTargetException

     */

    public static final void setPropertyValue(Object bean, String property,

            Object value) throws IntrospectionException,

            IllegalArgumentException, IllegalAccessException,/** 来自 时 代 J a v a 公 众 号 - N o w J a v  a . c o m**/

            InvocationTargetException {

        PropertyDescriptor descriptor = getPropertyDescriptor(

                bean.getClass(), property);

        if (descriptor != null && descriptor.getWriteMethod() != null) {

            descriptor.getWriteMethod()

                    .invoke(bean, new Object[] { value });

        }

    }


    /**

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