集册 Java实例教程 检查属性是否可编辑。

检查属性是否可编辑。

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

504
检查属性是否可编辑。
//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;


public class Main {


    /**

     * Checks whether the property is editable or not. Generally it checks

     * whether the mutator is available for this property or not. A property is

     * editable iff the property mutator is available.

     * 

     * @param beanClass the class of bean whose property is being inspecting.

     * @param property the name of property to inspect.

     * @return Returns <code>true</code> if the property is editable else <code>false</code>

     * @throws IntrospectionException

     */

    public static final boolean isPropertyEditable(Class beanClass,

            String property) throws IntrospectionException {

        // Gets the property descriptor for given property

        PropertyDescriptor descriptor = getPropertyDescriptor(beanClass,

                property);

        return descriptor == null ? false

                : descriptor.getWriteMethod() != null;

    }


    /**

     * 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 {
            /**
            n  o  w  j  a  v  
展开阅读全文