• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
黄洪波写点东西的地方
博客园    首页    新随笔    联系   管理    订阅  订阅
泛型与发射初探,获取当前代码所在的行
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();    
    }    
}

 

posted on 2016-12-23 18:19  红无酒伤  阅读(210)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3