java运行一个方法时如何得到该个对象的名字(不是类的名字).

 我来答
mks胡
推荐于2016-05-31 · TA获得超过184个赞
知道小有建树答主
回答量:126
采纳率:0%
帮助的人:135万
展开全部

可以通过StackTrace从栈顶往下倒


 

        String clsname = "ClassName";
        StackTraceElement stack[] = (new Throwable()).getStackTrace();
        int ix = 0;
        while (ix < stack.length) {
            StackTraceElement frame = stack[ix];
            String cname = frame.getClassName();
            if (cname.equals(clsname)) {
                break;
            }
            ix++;
        }

        while (ix < stack.length) {
            StackTraceElement frame = stack[ix];
            String cname = frame.getClassName();
            if (!cname.equals(clsname)) {
                System.out.println("类名:" + cname);
                System.out.println("方法名:" + frame.getMethodName());
            }
            ix++;
        }

 

c_k_凯
2013-06-01 · TA获得超过133个赞
知道小有建树答主
回答量:278
采纳率:100%
帮助的人:160万
展开全部
如果是想要得到new 出来的对象,可以考虑使用Object类的 getClass()方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
水冰天之痕
2013-06-01 · TA获得超过716个赞
知道小有建树答主
回答量:1254
采纳率:50%
帮助的人:1168万
展开全部
还以为真有这种聪明的方法……

笨一点可以通过文件来
既然从栈信息能得到调用的行数
也就可以分析文件得到调用的对象名

一句话,好麻烦……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式