Java Reflection Method Setter Get getSetters(Class clazz)

Here you can find the source of getSetters(Class clazz)

Description

Returns a Map of setter methods of the given class.

The key of the map contains the name of the attribute that can be accessed by the setter, the value the setter itself (an instance of java.lang.reflect.Method).

License

Apache License

Parameter

Parameter Description
clazz the class to return the setters for

Return

a Map of attributes and their accessor methods (setters)

Declaration

public static Map<String, Method> getSetters(Class clazz) 

Method Source Code


//package com.java2s;
/*/*  w w  w.j a  v a 2 s.c  o m*/
 *  Copyright 2005-2006 Stefan Reuter
 *
 *  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;
import java.util.Locale;
import java.util.Map;

public class Main {
    /**
     * Returns a Map of setter methods of the given class.<p>
     * The key of the map contains the name of the attribute that can be
     * accessed by the setter, the value the setter itself (an instance of
     * java.lang.reflect.Method). A method is considered a setter if its name
     * starts with "set", it is declared public and takes exactly one argument.
     *
     * @param clazz the class to return the setters for
     * @return a Map of attributes and their accessor methods (setters)
     */
    public static Map<String, Method> getSetters(Class clazz) {
        final Map<String, Method> accessors = new HashMap<String, Method>();
        final Method[] methods = clazz.getMethods();

        for (Method method : methods) {
            String name;
            String methodName;

            methodName = method.getName();
            if (!methodName.startsWith("set")) {
                continue;
            }

            // skip methods with != 1 parameters
            if (method.getParameterTypes().length != 1) {
                continue;
            }

            // ok seems to be an accessor
            name = methodName.substring("set".length()).toLowerCase(Locale.US);
            accessors.put(name, method);
        }

        return accessors;
    }
}

Related

  1. getSetterName(Method m)
  2. getSetterName(Method m)
  3. getSetterName(Method method)
  4. getSetterName(String name)
  5. getSetterOrGetter(Class clazz, String name, boolean isSetter)
  6. getSetters(Class clazz)
  7. getSetters(Class klass)
  8. getSetters(Class klass)
  9. getSetters(Class c)