public void getParam(Object param){
//想在这里获取到调用此方法的形参
}
@Test
void contextLoads() {
User user = new User();
getParam(user.getUsername());
}
例如:测试中的 getParam 调用 形参中是 user.getUsername()
,那么我想在 getParam 中获取到"user.getUsername()"这种信息,如何才能做到呢?
1
uselessVisitor OP 找到办法了。。 群友的教导从 Mybatis-plus 源码中找到了这部分在 LambdaUtils 的 resolve 方法和抽象类 AbstractLambdaWrapper 的 getColumn(xxx)方法中
我抽象了一下 public static <T> String getColumn(SFunction<T,?> lambdaColumn){ SerializedLambda lambda = LambdaUtils.resolve(lambdaColumn); String camelParam = PropertyNamer.methodToProperty(lambda.getImplMethodName()); return StringUtils.camelToUnderline(camelParam); } |