search.java

来自「检查Java程序漏洞」· Java 代码 · 共 46 行

JAVA
46
字号
/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html*/package net.sourceforge.pmd.symboltable;public class Search {    private static final boolean TRACE = false;    private NameOccurrence occ;    private NameDeclaration decl;    public Search(NameOccurrence occ) {        if (TRACE)            System.out.println("new search for " + occ);        this.occ = occ;    }    public void execute() {        decl = searchUpward(occ, occ.getScope());        if (TRACE)            System.out.println("found " + decl);    }    public void execute(Scope startingScope) {        decl = searchUpward(occ, startingScope);        if (TRACE)            System.out.println("found " + decl);    }    public NameDeclaration getResult() {        return decl;    }    private NameDeclaration searchUpward(NameOccurrence nameOccurrence, Scope scope) {        if (!scope.contains(nameOccurrence) && scope.getParent() != null) {            if (TRACE)                System.out.println("moving up fm " + scope + " to " + scope.getParent());            return searchUpward(nameOccurrence, scope.getParent());        }        if (scope.contains(nameOccurrence)) {            return scope.addVariableNameOccurrence(nameOccurrence);        }        return null;    }}

⌨️ 快捷键说明

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