该声明的作用是什么? Bytebuddy的ElementMatcher

问题描述 投票:1回答:1

任何人都可以解释这句话究竟是做什么的?为什么它将图层包装到图层中。

匹配器是:

ElementMatchers.declaresMethod(ElementMatchers
  .isAnnotatedWith(ElementMatchers.named("com.agent.tool.Trace")))

适用于此代码:

package com.agent.tool

@Target({ElementType.METHOD,ElementType.TYPE,ElementType.PACKAGE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Trace {

  String[] argumentName() default {};
}

我可以这样写吗

ElementMatchers.declaresMethod("com.agent.tool.Trace")

要么

ElementMatchers.declaresMethod((ElementMatchers
   .isAnnotatedWith("com.agent.tool.Trace"))
byte-buddy
1个回答
0
投票

通过组合多个注释,Byte Buddy元素匹配器通常可以嵌套以匹配甚至复杂的条件。如果要匹配任何使用特定名称的注释进行注释的方法,则需要一个额外的匹配器named

declaresMethod(isAnnotatedWith(named("com.agent.tool.Trace")))
© www.soinside.com 2019 - 2024. All rights reserved.