集册 Java实例教程 获取bean的指定字段值

获取bean的指定字段值

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

760
获取bean的指定字段值

/**

 * Copyright (C) 2012 - 2013, Grass CRM Studio

 *

 * 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;
// 来 自 n  o  w  j  a  v  a . c o m

public class Main{

    public static void main(String[] argv) throws Exception{

        Object bean = "nowjava.com";

        String fieldName = "nowjava.com";

        System.out.println(getFieldValue(bean,fieldName));

    }

    /**

     * Gets specified field value of bean

     * 

     * @param bean

     *            java bean

     * @param fieldName

     *            field name

     * @return field value

     */

    public static Object getFieldValue(Object bean, String fieldName)

            throws Exception {

        Class<?> cls = bean.getClass();


        Method[] methods = cls.getDeclaredMethods();

        String fieldGetName = getGetFieldName(fieldName);

        if (!checkGetMethod(methods, fieldGetName)) {

            return null;
            /*
            来 自*
             时代Java公众号
            */

        }

        Method fieldGetMet = cls.getMethod(fieldGetName, new Class[] {});

        Object fieldVal = fieldGetMet.invoke(bean, new Object[] {});

        return fieldVal;

    }

    /**

     * Gets get field method name

     * 

     * 

     * @param fieldName

     *            field name

     * @return get field method name

     */

    public static String getGetFieldName(String fieldName) {

        if (CommonUtil.isNullOrEmpty(fieldName)) {

            return null;

        }

        return "get" + fieldName.substring(0, 1).toUpperCase()

                + fieldName.substring(1);

    }

    
展开阅读全文