java string数组 变长,求解 能否把数组转变成可变长参数 (弱智的问题 ^_^)

@Before("webLog()")

public void doBefore(JoinPoint joinPoint) {

startTime.set(System.currentTimeMillis());

// 接收到请求,记录请求内容

ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();

HttpServletRequest request = attributes.getRequest();

String classMethod = joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName() + ",params:" + Arrays.toString(joinPoint.getArgs());

// 记录下请求内容

Object[] objects = joinPoint.getArgs();

logger.info("ARGS : " + Arrays.toString(joinPoint.getArgs()));

//test1(joinPoint,objects);//获取targetClass 下的所有方法进行遍历

//test2(joinPoint,objects); //根据方法名和参数列表直接定位方法

}

public static String test1(JoinPoint joinPoint, Object[] objects) {

String description = "";

try {

String targetName = joinPoint.getTarget().getClass().getName();

String methodName = joinPoint.getSignature().getName();

Object[] arguments = joinPoint.getArgs();

Class targetClass;

targetClass = Class.forName(targetName);

//获取targetClass 下的所有方法进行遍历

Method[] methods = targetClass.getMethods();

for (Method method : methods) {

if (method.getName().equals(methodName)) {

Class[] classes = method.getParameterTypes();

if (classes.length == arguments.length) {

if (method.getAnnotation(xxx.class) != null) {

description = method.getAnnotation(xxx.class).description();

}

break;

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

return description;

}

public static String test2(JoinPoint joinPoint, Object[] objects) {

String description = "";

try {

String targetName = joinPoint.getTarget().getClass().getName();

String methodName = joinPoint.getSignature().getName();

Object[] arguments = joinPoint.getArgs();

Class targetClass;

targetClass = Class.forName(targetName);

//根据方法名和参数列表直接定位方法

Method method = targetClass.getMethod(methodName, (Class>[]) objects );

Class[] classes = method.getParameterTypes();

if (classes.length == arguments.length) {

if (method.getAnnotation(xxx.class) != null) {

description = method.getAnnotation(xxx.class).description();

}

}

} catch (Exception e) {

e.printStackTrace();

}

return description;

}

我想改造 test2 方法 但是 强转还是报错

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Class;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值