繁体   English   中英

在Java中跳过方法执行

[英]Skipping method execution in Java

我想实现一个功能,以便我们使用注释方法

@Skip(type = Execution.TRUE)

那么该方法将不会被执行。 我已经定义了自己的注释。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Skip {
    Execution type() default Execution.FALSE;
}

在方法定义中我已经像这样定义了..

@Skip(type = Execution.TRUE)
    static void show(){
      System.ou.println("Hi");
    }

现在如果我们从main()方法调用show()方法。

此方法将不会执行。 我怎么能实现它?

基本上,通过创建自己的java代理程序,如果要调用的任何方法都带有该属性,它将在运行时检查。 然后跳过执行。

或者,也许可以提供一段在编译时触发的代码。 也许你可以对其进行微调,以防止将方法调用添加到字节码中。

在任何情况下 - 您都要接受高级挑战。 也许您应该退一步并概述您打算以这种方式解决的问题 - 这样我们就可以找到更好的解决潜在问题的方法。

如果您正在编写自定义注释,则还必须编写使用者。 ie)你必须使用java.lang.reflection机制来解析类并根据你设置的参数调用方法。 Java将仅为默认注释提供消费者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM