【代码重构 & JDT】判断一个方法是否是实现重写,继承重写和递归
来源:互联网 发布:c语言调用lib 编辑:程序博客网 时间:2024/06/05 02:34
1. 方法是否是实现重写
public static boolean methodIsImplemented(IMethodBinding methodBinding){ITypeBinding typeBinding = methodBinding.getDeclaringClass(); List<IMethodBinding> allIMethodBindings = new ArrayList<IMethodBinding>();//存放所有实现类的方法,用于和指定方法比较//找所有实现的方法for(ITypeBinding impledITypeBinding : typeBinding.getInterfaces()){for(IMethodBinding binding : impledITypeBinding.getDeclaredMethods()){allIMethodBindings.add(binding);}}for(IMethodBinding mBinding : allIMethodBindings){if(methodBinding.overrides(mBinding)){return true;}}return false;}
2. 方法是否是继承重写
public static boolean methodIsOverride(IMethodBinding methodBinding){ITypeBinding typeBinding2 = methodBinding.getDeclaringClass();List<IMethodBinding> allIMethodBindings = new ArrayList<IMethodBinding>();//存放所有父类的方法,用于和指定方法比较//找所有父类的方法while(typeBinding2.getSuperclass() != null){ITypeBinding superITypeBinding = typeBinding2.getSuperclass();for(IMethodBinding binding : superITypeBinding.getDeclaredMethods()){allIMethodBindings.add(binding);}typeBinding2 = superITypeBinding;}for(IMethodBinding mBinding : allIMethodBindings){if(methodBinding.overrides(mBinding)){return true;}}return false;}
static boolean isRecursive = false;public static boolean methodIsRecursive(MethodDeclaration methodDeclaration){final IMethod method = (IMethod)methodDeclaration.resolveBinding().getJavaElement();//判断是否是递归 methodDeclaration.accept(new ASTVisitor() {public boolean visit(MethodInvocation node){if(node.getName().toString().equals(method.getElementName())){if(((IMethod)node.resolveMethodBinding().getJavaElement()).equals(method)){isRecursive = true;}}return true;}});return isRecursive;}
阅读全文
0 0
- 【代码重构 & JDT】判断一个方法是否是实现重写,继承重写和递归
- 【代码重构 & JDT】判断一个类IType是否有子类
- 创建继承和方法重写
- 判断对象是否相等---重写equals方法
- 重载、重构和重写
- 重写、重载和重构
- 用递归实现判断一个字符串是否是回文的方法
- 用递归实现判断一个字符串是否是回文的方法
- Java重写equals方法实现去重
- -- Lua 实现类继承 方法重写
- 递归实现判断一个数是否是回文数
- 继承和方法重写如何支持多态性
- 静态(static)方法的继承和重写
- 静态(static)方法的继承和重写
- python继承和重写init方法
- 继承、方法重写和多态
- java中的继承和方法的重写
- 静态(static)方法的继承和重写
- HashMap实现原理-数据解构与源码分析
- Android-LeakCanary检测内存泄漏
- 微信小程序开发(3)--倒计时60获取验证码
- linux-011上文件系统中超级块和inode的使用分析
- 大数据:网络爬虫的post请求、get请求的区别
- 【代码重构 & JDT】判断一个方法是否是实现重写,继承重写和递归
- Git-Gui的中文乱码解决方法
- socket 设备自动重启/断电 recv send阻塞的解决办法
- 前端获取到后端数据后,要根据数据类型传输不同的属性值到后端,后端完成特殊业务处理
- Weex新建项目报错weex-vue-render/index.js
- java 给线程池改名字的作用
- android项目的JaCoCo代码覆盖率入门使用
- py-faster-rcnn_cuda8.0_cudnn5.0_报错
- cvNamedWindow与namedWindow,cvShowImage与inshow的区别