在运行时获取类名

时间:2013-03-23 14:35:44

标签: java runtime agent

我尝试使用classfiletransformer和一个简单代理来获取新对象的名称,但我唯一能做的就是获取类名,而不是变量名。有没有办法做到这一点? 我的例子: 我有一个简单的主要内容:

public static void main(String[] args) {

    int z=1;
    if(z==0){
        Cube cube1= new Cube(2,3);
        System.out.println("Cube:"+ cube.area());

    }
    else{
        Cyrcle cyrcle1= new Cyrcle(2);
        System.out.println("Cyrcle:"+ cyrcle.area());
    }


}

和classfiletransformer:

public class SimpleTransformer implements ClassFileTransformer{
    public byte[] transform(ClassLoader    loader,
            String              className,
            Class<?>            classBeingRedefined,
            ProtectionDomain    protectionDomain,
            byte[]              classfileBuffer)
            throws IllegalClassFormatException {

      System.out.println(className);

       return classfileBuffer;
    }
}

我想打印打印“cyrcle1”对象,但这种方式只打印Cyrcle类型。

0 个答案:

没有答案