java 如何获取当前代码所在方法
时间: 2023-05-03 21:06:01 浏览: 188
在Java中获取当前代码所在方法可以通过以下几种方式实现:
1.使用StackTraceElement类
通过StackTraceElement类的方法可以获取当前线程的调用栈信息,包括当前代码所在的方法信息。具体代码如下:
```java
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
String methodName = stackTrace[1].getMethodName();
```
其中stackTrace[0]为Thread.getStackTrace()方法本身,stackTrace[1]为获取当前代码所在的方法。
2.使用反射机制
可以通过反射机制获取当前代码所在的方法信息。具体代码如下:
```java
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
Class<?> clazz = Class.forName(stackTrace[1].getClassName());
Method method = clazz.getDeclaredMethod(stackTrace[1].getMethodName());
```
其中stackTrace[0]为Thread.getStackTrace()方法本身,stackTrace[1]为获取当前代码所在的方法。
3.使用AspectJ
使用AspectJ可以更方便地获取当前代码所在方法信息。具体代码如下:
```java
@Aspect
public class LogAspect {
@Pointcut("execution(* com.example..*.*(..))")
public void pointcut() {}
@Before("pointcut()")
public void log(JoinPoint joinPoint) {
String methodName = joinPoint.getSignature().getName();
}
}
```
通过定义切入点和切面,可以在切入点执行前获取当前代码所在方法的名称。