Java非反射方式获取方法签名

package com.cheng;

import org.junit.Test;

/**
 * 非反射方式获取方法签名
 *
 * @author chengxiao51
 * @date 2017-12-15 15:50:48
 */
public class Function {

    @Test
    public void getMethodSignTest() {
        String methodSign = getMethodSign();
        System.out.println(methodSign);
    }

    private String getMethodSign() {
        String result = "";
        StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
        for (int i = 0; i < stackTrace.length; i++) {
            if (stackTrace[i].getMethodName().equals("getMethodSign")) {
                result = stackTrace[i + 1].getClassName() + "." + stackTrace[i + 1].getMethodName();
                break;
            }
        }
        return result;
    }
}

猜你喜欢

转载自blog.csdn.net/cx118118/article/details/78814019