Here you can find the source of getSetterMethod(final Class> clazz, final String propertyName, final Class> type)
null
for none
public static Method getSetterMethod(final Class<?> clazz, final String propertyName, final Class<?> type)
//package com.java2s; /*/*from ww w . j a va2 s . c om*/ * * * Copyright (c) 2014- MHISoft LLC and/or its affiliates. All rights reserved. * * Licensed to MHISoft LLC under one or more contributor * * license agreements. See the NOTICE file distributed with * * this work for additional information regarding copyright * * ownership. MHISoft LLC licenses this file to you 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.util.ArrayList; import java.util.List; import java.lang.reflect.Method; import java.lang.reflect.Modifier; public class Main { /** * Returns the first public setter for the specified property and parameter type, or <code>null</code> for none */ public static Method getSetterMethod(final Class<?> clazz, final String propertyName, final Class<?> type) { Method result = null; final int excludedModifiers = Modifier.ABSTRACT | Modifier.PRIVATE | Modifier.PROTECTED | Modifier.STATIC; final String name = "set" + propertyName; MAIN_LOOP: for (Class<?> c = clazz; c != null; c = c.getSuperclass()) { for (final Method m : c.getDeclaredMethods()) { final int methodModifiers = m.getModifiers(); if ((methodModifiers & excludedModifiers) != 0) continue; final String methodName = m.getName(); if (name.equalsIgnoreCase(methodName) == false) continue; if (m.getParameterTypes().length != 1) continue; if (!m.getParameterTypes()[0].isAssignableFrom(type)) continue; result = m; break MAIN_LOOP; } } return result; } /** * List of all the methods of the class (not its superclasses). */ private static List<Method> getDeclaredMethods(final Class<?> clazz, final int includedModifiers, final int excludedModifiers) { final List<Method> result = new ArrayList<Method>(); for (final Method m : clazz.getDeclaredMethods()) { final int methodModifiers = m.getModifiers(); if (includedModifiers != 0 && ((methodModifiers & includedModifiers) == 0)) continue; if ((methodModifiers & excludedModifiers) == 0) result.add(m); } return result; } }