您的位置:首页 > 编程语言

泛型与发射初探,获取当前代码所在的行

2016-12-23 18:19 197 查看
package com.xxx.xxxx;

import java.lang.reflect.Method;

public class test {

public static void main(String[] args) throws ClassNotFoundException{
System.out.print(getTraceInfo());
}

public static String getTraceInfo() throws ClassNotFoundException{
StringBuffer sb = new StringBuffer();

StackTraceElement[] stacks = new Throwable().getStackTrace();
int stacksLen = stacks.length;
System.out.println(stacksLen);
//        Class clazz = Class.forName("java.lang.StringBuffer");
Class<?> clazz = Class.forName(StackTraceElement.class.getName());
//        Class<?> clazz = Class.forName(test.class.getName());
Method[] methods = clazz.getMethods();
for (Method method : methods) {
String methodName = method.getName();
System.out.println("方法名称:" + methodName);
Class<?>[] parameterTypes = method.getParameterTypes();
for (Class<?> clas : parameterTypes) {
String parameterName = clas.getName();
System.out.println("参数名称:" + parameterName);
}
System.out.println("*****************************");
}
sb.append("class: " ).append(stacks[1].getClassName()).append("; method: ").append(stacks[1].getMethodName()).append("; number: ").append(stacks[1].getLineNumber());

return sb.toString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: