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