JAVA 获取类名,函数名

获取以下获取方法所在函数的相关信息

1.获取当前函数名:Thread.currentThread().getStackTrace()[1].getMethodName();

2.获取当前类名:Thread.currentThread().getStackTrace()[1].getClassName();

3.获取当前类的文件名:Thread.currentThread().getStackTrace()[1].getFileName();

获取调用方法的所在函数的相关信息

1.获取当前函数名:Thread.currentThread().getStackTrace()[2].getMethodName();

2.获取当前类名:Thread.currentThread().getStackTrace()[2].getClassName();

3.获取当前类的文件名:Thread.currentThread().getStackTrace()[2].getFileName();

Demo:

这是获取方法

 1 public class NameProxy {
 2
 3     public static void nowMethod() {
 4         String clazz = Thread.currentThread().getStackTrace()[1].getClassName();
 5         String method = Thread.currentThread().getStackTrace()[1]
 6                 .getMethodName();
 7         System.out.println("class name: " + clazz + " Method Name " + method);
 8     }
 9
10     public static void parentMethod() {
11         String clazz = Thread.currentThread().getStackTrace()[2].getClassName();
12         String method = Thread.currentThread().getStackTrace()[2]
13                 .getMethodName();
14         System.out.println("class name: " + clazz + " Method Name " + method);
15     }
16
17 }

Test:

1 public class MethodName {
2
3     @Test
4     public void showMethodName() {
5         LogProxyName.nowMethod();
6         LogProxyName.parentMethod();
7     }
8
9 }

显示结果:

1 class name: com.XXX.name.NameProxy Method Name nowMethod
2 class name: com.XXX.name.MethodName Method Name showMethodName
时间: 2024-10-06 09:26:08

JAVA 获取类名,函数名的相关文章

类名+函数名(参数1,参数2.....){.......return this;}

下述的函数是这样定义的: 类名+函数名(参数1,参数2.....){.......return this;} int +函数名(参数1,参数2.....){.......return int;} short+函数名(参数1,参数2.....){.......return short;} double+函数名(参数1,参数2.....){.......return double;} String+函数名(参数1,参数2.....){.......return String;} int[]+函数名(

JAVA获取方法参数名的分析(一)

关于题目 首先解释一下题目. 我们知道, Java通过反射,可以从一个类得知它有哪些方法,有哪些变量,也可以知道每个方法中有哪几个什么类型的传入参数.但有一个东西反射取不到,那就是我们对方法传入参数的命名. 取得传入参数的名字有什么意义? 对这个问题的探究,源于在写一个测试类时候的需求.假设我们有一个类需要测试,这个类中有数十个方法.为每个方法编写测试类,将耗费大量的时间和精力.因此我有一种想法,就是通过java的反射,获得这个类所有的方法,再通过传入参数的名字和参数类型,来生成一些符合要求的数

Java 获取类名,函数名,行数

C++下用宏来实现.分别是__FILE__,__func__,__LINE__分别代表,C++编译自动在每个文件中设定__FILE__类型是字符串常量 ,将__LINE__替换为当前行数,类型是数字常量,将在每个函数设定__FUNC__类型是字符串常量. JAVA下用StackTraceElement类 : String getFileName() 返回文件名 int getLineNumber()返回当前行数 String getClassName()返回类名 String getMethod

获取类名方法名的方法

Below I present you two different ways to get the current Class: Using Thread Using getClass() The simplest way to get the name of the class where your code is being executed in is using the getClass() method present in every java object. Like here:

突然的明白--public static 类名 函数名()

public static ImageUtilEngine getImageEngine() { return imageEngine; } 这个是什么啊........纠结了一个多星期的东西 忽然间看到了 /** A safe way to get an instance of the Camera object. */ public static Camera getCameraInstance(){ Camera c = null; try { c = Camera.open(); //

Java获取文件后缀名

int dot = filename.lastIndexOf('.'); if ((dot > -1) && (dot < (licenceImg.getOriginalFilename().length()))) { extension = licenceImg.getOriginalFilename().substring(dot + 1); } String fileName = System.nanoTime() + "." + extension;

在C语言中以编程的方式获取函数名

调试常用的 __FILE__, __FUNCTION__, __LINE__ 调试常用的 __FILE__, __FUNCTION__, __LINE__ 没想到 VC6 不支持 __FUNCTION__ 所以我写了如下的奇怪代码 //用来记录当前行和当前函数//也可说是记录 堆栈void log_stack(const char *file, int line, const char * function); //当然还要对 __FUNCTION__ 宏作点修饰,因为这个宏只是在函数里面才起作

python 获取当前调用函数名等log信息

import sys funcName = sys._getframe().f_back.f_code.co_name #获取调用函数名 lineNumber = sys._getframe().f_back.f_lineno #获取行号 print sys._getframe().f_code.co_name # 获取当前函数名 import inspect def get_current_function_name(): return inspect.stack()[1][3] class

Python如何获取到当前函数名和通过字符串调用函数

获取当前函数名: 应用环境: 某些时候, 为了简化和更好扩展程序,我们需要获取到当前运行的函数名字 方法1(不推荐) import sys def I_want_to_know_my_name(): print(sys._getframe().f_code.co_name) #你懂得,下划线开头的不应该使用的 方法2 import traceback def who_am_i(): return traceback.extract_stack()[-2][2] def I_want_to_kno