首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于btrace的代码是什么意思?

关于btrace的代码是什么意思?
EN

Stack Overflow用户
提问于 2013-10-17 14:44:05
回答 1查看 200关注 0票数 0

在以下代码中:

代码语言:javascript
复制
import static com.sun.btrace.BTraceUtils.*;
import com.sun.btrace.annotations.*;
import org.jboss.deployment.DeploymentInfo; 

@BTrace public class Trace{
   @OnMethod(
      clazz="org.jboss.deployment.SARDeployer",
      method="parseDocument"
   )
   public static void traceExecute(DeploymentInfo di){
      printFields(di);
   }

   @OnMethod(
      clazz="java.net.URL",
      method="openConnection",
      location=@Location(Kind.RETURN)
   )
   public static void resolveEntity(@Self Object instance){
     String protocol = str(get(field("java.net.URL", "protocol"),instance));
     String file = str(get(field("java.net.URL", "file"),instance));
     if(startsWith(protocol,"http") && (endsWith(file,".xsd") || endsWith(file,".dtd"))){
        String authority = str(get(field("java.net.URL", "authority"),instance));
        String path = str(get(field("java.net.URL", "path"),instance));
        println("=====================================");
        print(protocol);
        print("://");
        print(authority);
        print(path);
        println(" not found!");
        println("who call:");
        jstack();
     }
   }
}

这意味着什么:get(field("java.net.URL", "authority"),instance)

请给我看一下文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-17 18:13:17

field("java.net.URL", "authority")将安全地从类java.net.URL中检索名为java.net.URL的字段。

get(field, instance)反射地获得指定实例中给定字段的值。

用于BTraceUtils的Javadoc是一个很好的起点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19429895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档