[英]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.