例如:public class A{
getMethod(){
System.out.print();
}
}
public class B {
test(int i){
new A().getMethod();
}
test(String i){
new A().getMethod();
}
}
我想在A中输出具体是哪个 test方法调用了getMethod(),应该怎么处理?
我已经可以获取到B和test了,但是test的参数我还区分不开,怎么区分开两个test?
有没有大神啊?这个问题如何解决?
java 获取方法调用者 的参数
答案:5 悬赏:0 手机版
解决时间 2021-02-25 10:27
- 提问者网友:心如荒岛囚我终老
- 2021-02-24 19:15
最佳答案
- 五星知识达人网友:北方的南先生
- 2021-02-24 20:49
区分是调用哪个test是由你调用的时候的参数决定的。
例如:调用时test(1),那么你调用的是
test(int i){
new A().getMethod();
}
这个方法
如果调用的时候是test("str")调用的就是
test(String i){
new A().getMethod();
}
了。
例如:调用时test(1),那么你调用的是
test(int i){
new A().getMethod();
}
这个方法
如果调用的时候是test("str")调用的就是
test(String i){
new A().getMethod();
}
了。
全部回答
- 1楼网友:街头电车
- 2021-02-24 23:28
可以在getmethod方法里面打印堆栈实现:
throwable ex = new throwable();
stacktraceelement[] stackelements = ex.getstacktrace();
if (stackelements != null) {
for (int i = 0; i < stackelements.length; i++) {
system.out.print(stackelements[i].getclassname()+"/t");
system.out.print(stackelements[i].getfilename()+"/t");
system.out.print(stackelements[i].getlinenumber()+"/t");
system.out.println(stackelements[i].getmethodname());
system.out.println("-----------------------------------");
}
}
- 2楼网友:底特律间谍
- 2021-02-24 21:57
参数没用到,搞两个test似乎没意义,可以直接在test方法中就输出一下唉
- 3楼网友:青灯有味
- 2021-02-24 21:23
getMethod字符串参数就好了。然后具体的test方法里面传入下参数。。比如int的那个test可以getMethod("intTest方法"+i);
- 4楼网友:七十二街
- 2021-02-24 21:00
分别在两个方法里面输出标志性的东西 不久可以了 如在test(int i)输出1 在test(Sting i)输出2 运行之后看一下输出1还是2
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯