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

阳泉市建设局网站找公司做网站

阳泉市建设局网站,找公司做网站,wordpress怎么ftp建站,站长之家为什么80%的码农都做不了架构师#xff1f; ASM 判定一个类#xff0c;实现了指定接口 技术支持 ASM 中#xff0c;ClassReader 类#xff1a;对已存在的进行解析#xff0c;并提供获取类信息的方法。 通过 ClassReader #xff0c;实现对一个类的解析。 … 为什么80%的码农都做不了架构师    ASM 判定一个类实现了指定接口 技术支持 ASM 中ClassReader 类对已存在的进行解析并提供获取类信息的方法。 通过 ClassReader 实现对一个类的解析。 处理流程 依据如下流程判断出一个类是否实现了某个接口: 循环判断是否实现目标接口递归判断父接口是否存在目标接口递归判断父类是否实现目标接口 具体实现 具体实现代码如下 package utils;import org.objectweb.asm.ClassReader;import java.io.IOException; import java.util.Set;/*** 判断某类是否实现了指定接口集合** author pengpj* date 2018/11/27*/ public class SpecifiedInterfaceImplementionChecked {/*** 判断是否实现了指定接口** param reader class reader* param interfaceSet interface collection* return check result*/public static boolean hasImplSpecifiedInterfaces(ClassReader reader, SetString interfaceSet) {if (isObject(reader.getClassName())) {return false;}try {if (containedTargetInterface(reader.getInterfaces(), interfaceSet)) {return true;} else {ClassReader parent new ClassReader(reader.getSuperName());return hasImplSpecifiedInterfaces(parent, interfaceSet);}} catch (IOException e) {return false;}}/*** 检查当前类是 Object 类型** param className class name* return checked result*/private static boolean isObject(String className) {return java/lang/Object.equals(className);}/*** 检查接口及其父接口是否实现了目标接口** param interfaceList 待检查接口* param interfaceSet 目标接口* return checked result* throws IOException exp*/private static boolean containedTargetInterface(String[] interfaceList, SetString interfaceSet) throws IOException {for (String inter : interfaceList) {if (interfaceSet.contains(inter)) {return true;} else {ClassReader reader new ClassReader(inter);if (containedTargetInterface(reader.getInterfaces(), interfaceSet)) {return true;}}}return false;}} 测试用例 部分测试用例如下 private static SetString set;static {if (set null) {set new HashSet();}set.add(com/cvte/myou/apm/agent/utils/SpecifiedInterfaceImplCheckedTest$A);}Testpublic void hasImplSpecifiedInterfacesTest() throws IOException {Assert.assertEquals(true, SpecifiedInterfaceImplChecked.hasImplSpecifiedInterfaces(new ClassReader(B.class.getName()), set));Assert.assertEquals(true, SpecifiedInterfaceImplChecked.hasImplSpecifiedInterfaces(new ClassReader(C.class.getName()), set));}Testpublic void hasImplSpecifiedInterfacesObjectTest() throws IOException {Assert.assertEquals(false, SpecifiedInterfaceImplChecked.hasImplSpecifiedInterfaces(new ClassReader(Object.class.getName()), set));}Testpublic void hasImplSpecifiedInterfacesInterfaceTest() throws IOException {Assert.assertEquals(true, SpecifiedInterfaceImplChecked.hasImplSpecifiedInterfaces(new ClassReader(D.class.getName()), set));}interface A {void hello();}class B implements A {Overridepublic void hello() {}}abstract class C implements A {}interface D extends A {}总结 ASM 中提供了 ClassReader 对已存在的类进行解析可以让我们在没有源码的情况下对类进行操作。 转载于:https://my.oschina.net/pding/blog/2962373
http://www.yutouwan.com/news/413507/

相关文章:

  • 登陆中国建设银行网站我的账户密码怎么就有了?怎么清除效果图哪里可以制作
  • 麦包包的网站建设计算机考试模拟网站怎么做
  • 建设银行发卡银行网站网站建设贵不贵
  • 太原市建设交易中心网站首页怎么把做的网站发布
  • 贸易网站建设招聘平台
  • 网站内容导出在哪可以建一个网站
  • 海外学校网站建设导航网站前端模板
  • 服装网站建设定制网站建设广告图片
  • php网站开发教案个人做跨境电商网站有哪些
  • 网站编程薪资江门网站制作网站
  • 正能量不良网站进入窗口免费阅读重庆江北区网站建设
  • 潍坊网站建设 马手机非法网站怎么解决方案
  • 做网站费用计入什么保障网装修平台
  • 番禺网站建设效果wordpress摘要调用
  • 建设99网站网站域名怎么设置
  • 装修在线设计平台无锡网站seo报价
  • 新手学做免费网站软件好网络营销培训班哪家好
  • 成都建设银行分行招聘网站天津网站设计开发
  • 贵阳网站建设多少钱wordpress扫号器
  • 大型网站开发框架有哪些效果好企业营销型网站建设公司
  • 上海工程网站建设wordpress用ssd服务器的优势
  • 网站开发公司宣传语网站建设培训方案
  • 网站建设与管理课程心得体会目前比较流行的公司网站建站技术
  • 做的网站怎么把技术支持去掉广商网
  • 内部优惠券网站建站郑州企业管理培训课程
  • 360安全网站怎么做号码认证做网站需要服务器
  • 昌图门户网站shopkeeper wordpress
  • 像京东一样的网站营销型网站的好处
  • 柳州城乡建设管理局网站黄冈网站搭建推荐
  • 购买网站空间电销数据购买平台