`
joeyhacker
  • 浏览: 95902 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过反射获得更详细的参数信息

 
阅读更多
private static ClassPool pool = ClassPool.getDefault();

 public static void log(JoinPoint point) throws TException, NotFoundException {
  if (point != null) {
   StringBuilder sb = new StringBuilder();
   MethodSignature ms = (MethodSignature) point.getSignature();
   CtClass cc = pool.get(point.getTarget().getClass().getName());
   sb.append("类名:" + cc.getName());
   CtMethod cm = cc.getDeclaredMethod(ms.getName());
   sb.append(", 方法名:" + cm.getName());
   MethodInfo mi = cm.getMethodInfo();
   CodeAttribute ca = mi.getCodeAttribute();
   LocalVariableAttribute attr = (LocalVariableAttribute) ca
     .getAttribute(LocalVariableAttribute.tag);
   String[] params = new String[cm.getParameterTypes().length];
   int pos = Modifier.isStatic(cm.getModifiers()) ? 0 : 1;
   int index = 0;
   for (int i = 0; i < params.length; i++) {
    index = i + pos;
    params[i] = attr.variableName(index);
    // System.out.println(attr.descriptor(index));
   }
   Object[] args = point.getArgs();
   if (params.length > 0) {
    sb.append(", 参数列表 [");
    for (int i = 0; i < params.length; i++) {
     if (i != 0)
      sb.append(",");
     sb.append(params[i] + ": " + args[i]);
    }
    sb.append("]");
   }
   System.out.println(sb.toString());
  }
 }

 

 

用AOP实现LOG的场合用

分享到:
评论

相关推荐

    JAVA反射参数传递概略

    通过反射,我们可以在不知道具体类的情况下,动态地获取类的信息并调用其方法。这篇博客文章“JAVA反射参数传递概略”将深入探讨如何使用反射来处理方法参数,尤其是涉及到参数传递的细节。 首先,让我们理解什么是...

    通过反射获得实体类的字段和值

    在深入探讨如何通过反射获取实体类的字段和值之前,我们先来理解一下反射是什么以及它在.NET框架中的作用。反射是一种强大的编程技术,允许运行时动态地获取类型的信息并操作对象。它提供了对程序集、模块、类型、...

    evilThought#Java-#通过反射获得方法的参数信息1

    生成额外的信息(运行时非必须信息)会消耗内存并且有可能公布敏感信息(某些方法参数比如password,JDK文档里这么说的),并且确实很多信息javac并不会为

    java 通过反射获取类上注解,方法上注解,注解里的值及方法参数

    在Java编程中,注解(Annotation)是一种元数据,它提供了在代码中插入信息的方式,这些信息可以被编译器或运行时环境...通过实践这个例子,你可以更好地理解和掌握这些概念,从而在实际项目中更有效地利用注解和反射。

    电磁波透射系数和反射系数的详细讲解

    "电磁波透射系数和反射系数的详细讲解" 电磁波透射系数和反射系数是电磁波理论中的两个重要概念,它们描述了电磁波在介质界面上的行为。在本节中,我们将详细介绍电磁波透射系数和反射系数的定义、计算公式、物理...

    等效介质理论参数提取代码(原始).rar_S参数 反演_s参数电介常数_折射反演_磁导率_等效参数

    通过提供的MATLAB代码,用户能够处理S参数数据,进而得到材料的等效介质参数。这对于微波电路设计、天线分析、无线通信系统以及其他涉及电磁波与物质相互作用的研究都具有实际应用价值。文档"等效介质理论参数提取...

    java反射获取参数.zip

    在Java 8中,反射机制得到了进一步的增强,使其在处理对象、方法和类时更加灵活。这个“java反射获取参数.zip”文件很可能是关于如何利用Java反射获取类的属性、方法,特别是对于List集合类的操作。 首先,我们来...

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    1. **获取枚举类**:要通过反射获取枚举类,首先需要得到其Class对象。这可以通过`Class.forName()`方法完成,提供枚举类的全限定名作为参数。 ```java Class&lt;Color&gt; colorClass = (Class) Class.forName(...

    反射 reflect 根据方法名得到方法,并根据不同的数据类型参数和不同的返回值类型

    标题中的"反射 reflect 根据方法名得到方法",具体来说,假设我们有一个类`MyClass`,其中有一个名为`myMethod`的方法,我们可以这样获取这个方法: ```java public class MyClass { public void myMethod(int arg...

    java 反射得到某个方法

    一旦有了Class对象,我们就可以通过它来获取类的构造器、方法、字段等信息。对于题目中的需求,获取特定方法,我们可以使用`getMethods()`或者`getMethod(String name, Class&lt;?&gt;... parameterTypes)`方法。 `...

    S参数转化为其他参数_S参数和其他参数的转化_

    A参数包括A11(输入反射系数)、A21(传输系数)和A12(反向传输系数),它们与S参数之间存在数学关系,可以通过S参数计算得到。 Z参数(Impedance Parameters)反映了网络的阻抗特性,包括输入阻抗Z11、输出阻抗...

    S参数与其他参数的转换关系

    - 同理,从Y 参数转换为S 参数,可以通过一系列矩阵运算得到。 这种转换不仅适用于S 和Y 参数,还可以扩展到其他参数如Z、A 和h 参数。转换过程涉及矩阵运算和归一化,能够帮助工程师更好地理解和优化电路性能。 ...

    VR材质反射参数详解.pdf

    本篇内容详细解析了如何设置和调整VR材质的反射参数,以达到理想的效果。 首先,我们需要设置渲染参数。在“Render settings”中,输出分辨率设置为480*360,确保全局开关“Default lights”关闭,选择“Image ...

    matlab.rar_matlab_反射系数序列_反演算法_探地雷达 反演_谱反演

    首先,根据谱反演原理,详细推导了地层反射系数序列的计算公式以及反演所需的目标函数,并根据探地雷达波的特点,将计算公式和目标函数中的反射系数序列的奇偶分量用几何和电性参数替代,从而确立了地层几何和电性...

    c#反射教程(菜鸟)

    反射机制的工作原理是通过两种方法获取类的信息:一种是得到实例对象,通过调用 System.Object 上生命的方法 GetType 来获取实例对象的类型信息;另一种是通过 Type.GetType 以及 Assembly.GetType 方法。需要注意的...

    反射损耗L、反射系数ρ、电压驻波比S的换算对应关系

    或者,通过反射损耗L,可以得到VSWR: S = 10^(L/20) + 1 / (10^(L/20)) 上述表格给出了反射损耗L与反射系数ρ之间的换算关系。可以看出,随着L值的增大,ρ的绝对值减小,这意味着反射损耗增大,系统匹配度提高。...

    unity3d 镜面反射

    将反射向量作为参数传递给`texCUBE`,即可得到反射颜色。 6. **混合反射和漫反射**: - 为了得到最终的颜色,我们需要将反射颜色与物体的漫反射颜色混合。这通常依赖于一个称为`Reflectivity`的参数,它决定了物体...

    一种多层膜反射镜反射率的测量方法

    在某些情况下,实验得到的反射率可能高于80%,这样的高反射率性能是通过精心设计的多层膜结构以及精确的制备技术来实现的。更高的反射率意味着更多的X射线能量被反射,从而提高系统的光束利用率和灵敏度。 文章中还...

Global site tag (gtag.js) - Google Analytics