「java获取当前方法名」获取当前方法名称
本篇文章给大家谈谈java获取当前方法名,以及获取当前方法名称对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java中如何获取方法名字
import java.lang.reflect.Method;
public class Users {
public void print() {
}
public void getName() {}
public static void main(String[] args) {
Class c = Users.class;
Method m[] = c.getDeclaredMethods();
for (int i = 0; i m.length; i++) {
System.out.println("方法名" + m[i].getName());
}
}
}
Java语言如何获取当前正在使用方法的方法名。
System.out.println(new Throwable().getStackTrace()[0]);
执行结果
com.baidu.TestMain.main(TestMain.java:71)
包名com.baidu
类名Testmain
方法名main,
处于方法行数71行
Java 如何在方法运行时获得当前方法的Method(实例)?
Foible 朋友的说法不对。
B b=new B(); 这种方式,实际上是实例化了子类的对象,注意:内存中还是子类对象。
((A)b).m(); 表面上看起来是父类对象了,但是由于内存中是子类对象,所以调用的还是子类方法。
A b=new B();
b.m();
这种方法和你写的实际是一个效果,虽然上溯造型到了父类,由于子类重写了父类的方法,调用的还是子类的方法(也就是所:方法的实现,最后是在子类中实现的)。
所以,总结如下:
如果子类没有重写父类的方法,调用父类的方法的时候,实际上是去父类的内存中实现,可以调用父类方法。
如果子类重写了父类的方法,那么,你虽然上溯造型到了父类,由于内存还是子类,该方法的实现还是在子类,所以用实例化的对象是调用不到父类的,这种情况下,只能用super关键字。
用static的情况不讨论的情况下不讨论是这样的,不知道到您是否不满意,不满意的话可以发消息继续讨论。
java如何动态获取方法名
public class Test {
public static void main(String[] args)throws Exception {
// TODO Auto-generated method stub
A a=new A();
String i="setB";
Method cc=a.getClass().getMethod(i, String.class);//获取方法
//String.class如果没有就是new Class[0]
System.out.println(cc.getName());
cc.invoke(a, "aa");
//调用方法
System.out.println(a.getB());
}
}
class A{
private int a=0;
private String b="abc";
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
}
关于java获取当前方法名和获取当前方法名称的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-04,除非注明,否则均为
原创文章,转载请注明出处。