Java Reflection Method Signature getMethodSignature(Method method)

Here you can find the source of getMethodSignature(Method method)

Description

get Method Signature

License

Open Source License

Declaration

public static String getMethodSignature(Method method) 

Method Source Code

//package com.java2s;
/*// www.j  a  v  a  2 s . c o m
  GRANITE DATA SERVICES
  Copyright (C) 2011 GRANITE DATA SERVICES S.A.S.
    
  This file is part of Granite Data Services.
    
  Granite Data Services is free software; you can redistribute it and/or modify
  it under the terms of the GNU Library General Public License as published by
  the Free Software Foundation; either version 2 of the License, or (at your
  option) any later version.
    
  Granite Data Services 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. See the GNU Library General Public License
  for more details.
    
  You should have received a copy of the GNU Library General Public License
  along with this library; if not, see <http://www.gnu.org/licenses/>.
*/

import java.lang.reflect.Method;

public class Main {
    public static String getMethodSignature(Method method) {
        StringBuilder sb = new StringBuilder();
        sb.append(method.getName()).append('(');
        Class<?>[] params = method.getParameterTypes();
        for (int i = 0; i < params.length; i++) {
            if (i > 0)
                sb.append(',');
            sb.append(getTypeSignature(params[i]));
        }
        sb.append(')');
        return sb.toString();
    }

    public static String getTypeSignature(Class<?> type) {
        if (type.isArray()) {
            try {
                int dimensions = 1;
                Class<?> clazz = type.getComponentType();
                while (clazz.isArray()) {
                    dimensions++;
                    clazz = clazz.getComponentType();
                }

                StringBuffer sb = new StringBuffer(clazz.getName());
                while (dimensions-- > 0)
                    sb.append("[]");
                return sb.toString();
            } catch (Throwable e) {
                // fallback...
            }
        }
        return type.getName();
    }
}

Related

  1. getMethodSignature(Class[] paramTypes, Class retType)
  2. getMethodSignature(Method m)
  3. getMethodSignature(Method method)
  4. getMethodSignature(Method method)
  5. getMethodSignature(Method method)
  6. getMethodSignature(Method method)
  7. getMethodSignature(Method method)
  8. getMethodSignature(Method method)
  9. getMethodSignatureWithLongTypeNames(Method method)