⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unusedmethodcheck.java

📁 Checkstyle 可寻找:·不能使用的或者多余的输入 ·空格更好的地方不使用跳格符
💻 JAVA
字号:
//Tested with BCEL-5.1
//http://jakarta.apache.org/builds/jakarta-bcel/release/v5.1/

package com.puppycrawl.tools.checkstyle.bcel.checks;

import java.util.Iterator;
import java.util.Set;

import org.apache.bcel.classfile.JavaClass;
import org.apache.bcel.classfile.Method;

import com.puppycrawl.tools.checkstyle.api.Scope;
import com.puppycrawl.tools.checkstyle.bcel.ReferenceVisitor;
import com.puppycrawl.tools.checkstyle.bcel.classfile.JavaClassDefinition;
import com.puppycrawl.tools.checkstyle.bcel.classfile.MethodDefinition;

/**
 * Checks for unused methods
 * @author Rick Giles
 */
public class UnusedMethodCheck
    extends AbstractReferenceCheck
{
    /** @see AbstractReferenceCheck */
    public void setScope(String aScopeName)
    {
        super.setScope(aScopeName);
        ((ReferenceVisitor) getVisitor()).addMethodScope(
            Scope.getInstance(aScopeName));
    }

    /** @see com.puppycrawl.tools.checkstyle.bcel.IObjectSetVisitor */
    public void leaveSet(Set aJavaClasses)
    {
        final Iterator it = aJavaClasses.iterator();
        while (it.hasNext()) {
            final JavaClass javaClass = (JavaClass) it.next();
            final String className = javaClass.getClassName();
            final JavaClassDefinition classDef = findJavaClassDef(javaClass);
            final MethodDefinition[] methodDefs = classDef.getMethodDefs();
            for (int i = 0; i < methodDefs.length; i++) {
                if (!classDef.hasReference(methodDefs[i], getReferenceDAO())) {
                    final Method method = methodDefs[i].getMethod();
                    if (!ignore(className, method)) {
                        log(
                            javaClass,
                            0,
                            "unused.method",
                            new Object[] {methodDefs[i]});
                    }
                }
            }
        }
    }

    /** @see AbstractReferenceCheck */
    public boolean ignore(String aClassName, Method aMethod)
    {
        final String methodName = aMethod.getName();
        return (super.ignore(aClassName, aMethod)
            || methodName.equals("<init>")
            || methodName.equals("<clinit>"));
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -