当前位置: 首页 > news >正文

哪些网站开业做简单海报网站管理系统设置

哪些网站开业做简单海报,网站管理系统设置,国内比较好的猎头公司,莱芜营销型网站制作写在前面 本文看下使用bytebuddy如何实现抽象类#xff0c;并在子类中添加自定义注解。 1#xff1a;代码 1.1#xff1a;准备基础代码 类和方法注解 package com.dahuyou.bytebuddy.cc.mine;import java.lang.annotation.ElementType; import java.lang.annotation.Re…写在前面 本文看下使用bytebuddy如何实现抽象类并在子类中添加自定义注解。 1代码 1.1准备基础代码 类和方法注解 package com.dahuyou.bytebuddy.cc.mine;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(ElementType.TYPE) Retention(RetentionPolicy.RUNTIME) public interface MyAnnotationOnClazz {String loveThing() default ;int age(); }package com.dahuyou.bytebuddy.cc.mine;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface MyAnnotationOnMethod {String whatYouHate() default every thing;long yourMoneyAmount() default 0L; }抽象类 package com.dahuyou.bytebuddy.cc.mine;public abstract class MyAbstractClsT {public abstract T sayHiMan(String param); }1.2bytebuddy程序 package com.dahuyou.bytebuddy.cc.mine;import net.bytebuddy.ByteBuddy; import net.bytebuddy.description.annotation.AnnotationDescription; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.dynamic.DynamicType; import net.bytebuddy.implementation.MethodDelegation; import net.bytebuddy.matcher.ElementMatchers; import java.io.File;public class TTTT {public static void main(String[] args) throws Exception {DynamicType.Unloaded? dynamicType new ByteBuddy().subclass(TypeDescription.Generic.Builder.parameterizedType(MyAbstractCls.class, String.class).build()).name(MyAbstractCls.class.getName().concat(.).concat(MyAbstractClsImpl)).method(ElementMatchers.named(sayHiMan)) // 设置要拦截的方法.intercept(MethodDelegation.to(MyInterceptor.class)) // 设置执行具体逻辑的代理.annotateMethod( AnnotationDescription.Builder.ofType(MyAnnotationOnMethod.class).define(whatYouHate, TMD,啥也不是啊).define(yourMoneyAmount, 350L).build()) // 设置类上的注解以及其属性值.annotateType(AnnotationDescription.Builder.ofType(MyAnnotationOnClazz.class).define(loveThing, 啥也不是啥也不管).define(age, 56).build()) // 设置方法上的注解以及其属性值.make();// 写到类文件中dynamicType.saveIn(new File(TTTT.class.getResource(/).getPath()));System.out.println(-----华丽的分割线----);// 获取类上的注解ClassMyAbstractClsString aClass (ClassMyAbstractClsString) Class.forName(com.dahuyou.bytebuddy.cc.mine.MyAbstractCls.MyAbstractClsImpl);MyAnnotationOnClazz myAnnotationOnClazz aClass.getAnnotation(MyAnnotationOnClazz.class);System.out.println(myAnnotationOnClazz.loveThing: myAnnotationOnClazz.loveThing());System.out.println(myAnnotationOnClazz.age: myAnnotationOnClazz.age());// 获取方法上的注解MyAnnotationOnMethod myAnnotationOnMethod aClass.getDeclaredMethod(sayHiMan, String.class).getAnnotation(MyAnnotationOnMethod.class);System.out.println(myAnnotationOnMethod.whatYouHate: myAnnotationOnMethod.whatYouHate());System.out.println(myAnnotationOnMethod.yourMoneyAmount: myAnnotationOnMethod.yourMoneyAmount());System.out.println(-----华丽的分割线----);// 执行MyAbstractClsString stringMyAbstractCls aClass.newInstance();System.out.println(stringMyAbstractCls.sayHiMan(helloooooo));} }其中通过annotateMethod方法设置子类方法上的注解通过annotateType设置子类类上的注解运行一下 -----华丽的分割线---- myAnnotationOnClazz.loveThing: 啥也不是啥也不管 myAnnotationOnClazz.age: 56 myAnnotationOnMethod.whatYouHate: TMD,啥也不是啊 myAnnotationOnMethod.yourMoneyAmount: 350 -----华丽的分割线---- 拦截了参数是hellooooooProcess finished with exit code 0查看生成的字节码: package com.dahuyou.bytebuddy.cc.mine.MyAbstractCls;import com.dahuyou.bytebuddy.cc.mine.MyAbstractCls; import com.dahuyou.bytebuddy.cc.mine.MyAnnotationOnClazz; import com.dahuyou.bytebuddy.cc.mine.MyAnnotationOnMethod; import com.dahuyou.bytebuddy.cc.mine.MyInterceptor;MyAnnotationOnClazz(loveThing 啥也不是啥也不管,age 56 ) public class MyAbstractClsImpl extends MyAbstractClsString {MyAnnotationOnMethod(whatYouHate TMD,啥也不是啊,yourMoneyAmount 350L)public String sayHiMan(String var1) {return MyInterceptor.intercept(new Object[]{var1});}public MyAbstractClsImpl() {} }写在后面 参考文章列表 字节码编程bytebuddy之监控方法执行耗时 。
http://www.hkea.cn/news/14529190/

相关文章:

  • 女生做a视频的网站是什多少网站推广文案怎么写
  • 江苏网站推广公司哪家好涟源市建设局网站
  • 网站设计的价格龙泉市住房和城乡建设局网站
  • 网站建设公司下载手机网站模板网
  • 建设中学校园网站的目的宝塔怎么做两个网站的解析
  • 一个购物网站开发语言网站建设php的心得和体会
  • 响应式网站建设新闻wordpress 数据库 缓存6
  • 贵阳建设厅网站网站建设与运营财务预算
  • 陕西电商网站建设WordPress可视化编辑器启动不了
  • 四川个人网站备案成都网站定制中心
  • 建设门户网站 业务模板龙岗门户
  • 浙江交工宏途交通建设有限公司网站个人域名怎么做社交网站
  • 网站开发最重要的技巧商城模板建站
  • 如何在建设银行网站预约纪念币免费软件有哪些
  • 丽水市莲都区建设局网站普宁市建设局网站
  • 报名网站建设费用价格上海网站设计
  • 起域名网站招投标网站开发公司
  • 源码网站免费做胎压的网站
  • 十大免费建站程序wordpress做准的算命网站
  • 在网上怎么做网站短链接生成网址
  • 企业门户网站开发基础建设的网站有哪些内容
  • 网站建设到上线的步骤过程wordpress多站点问题
  • 如何提高网站的曝光率农产品网络营销方案
  • 免费建立个人网站官网网站建设风景课程设计报告
  • 什么网站做装修的seo交流论坛seo顾问
  • 百度注册域名免费建站做网站备案需要多长时间
  • 温州做网站制作哪家好网站优化北京seo
  • 企业微网站案例有广告的网站
  • 做网站图片怎么做计算机网络技专业术网站开发
  • 替别人做网站相应式手机网站建设