集册 Java实例教程 获取与给定属性对应的设置方法

获取与给定属性对应的设置方法

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

379
获取与给定属性对应的设置方法

/*

 * Copyright 2008-2009 the original author or authors.

 *

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *      http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */

import java.lang.reflect.Method;

import java.util.HashMap;/** 来 自 nowjava.com - 时  代  Java**/

import java.util.Map;


public class Main{


    /**

     * get the setter method corresponding to given property

     * 

     */

    public static Method getSetterPropertyMethod(Class<?> type,

            String propertyName) {

        String sourceMethodName = "set"

                + BeanUtils.capitalizePropertyName(propertyName);


        Method sourceMethod = BeanUtils.getMethod(type, sourceMethodName);


        return sourceMethod;

    }

    /**

     * Return a capitalized version of the specified property name.

     * 

     * @param s

     *            The property name

     */

    public static String capitalizePropertyName(String s) {

        if (s.length() == 0) {

            return s;

        }
        /**
         from
        * 时 代 J a v a 公 众 号 - N o w J a v  a . c o m 
        **/


        char[] chars = s.toCharArray();

        chars[0] = Character.toUpperCase(chars[0]);

        return new String(chars);

    }

    /**

     * Get method with given name and parameter types or return null if it does

     * not exist

     * 

     * @param clazz

     * @param name

     * @param parameterTypes

     * @return

     */

    public static Method getMethod(Class<?> clazz, 
展开阅读全文