Java 在代码的静态分析中,阴影到底是什么?

Java 在代码的静态分析中,阴影到底是什么?,java,static,code-analysis,analysis,Java,Static,Code Analysis,Analysis,我试着寻找这个问题的答案!有很多关于阴影的报纸。这到底是什么?假设你说的是名字阴影,那么 某些声明可能会在其部分范围内被另一个声明隐藏 相同名称的声明,在这种情况下,不能使用简单名称 用于指声明的实体 并给出了这个例子 class Test { static int x = 1; public static void main(String[] args) { int x = 0; System.out.print("x=" + x);

我试着寻找这个问题的答案!有很多关于阴影的报纸。这到底是什么?

假设你说的是名字阴影,那么

某些声明可能会在其部分范围内被另一个声明隐藏 相同名称的声明,在这种情况下,不能使用简单名称 用于指声明的实体

并给出了这个例子

class Test {
    static int x = 1;
    public static void main(String[] args) {
        int x = 0;
        System.out.print("x=" + x);
        System.out.println(", Test.x=" + Test.x);
    }
}
其中,
x
是一个
静态
类变量和一个局部变量。如果在中定义局部变量
x
的方法中引用了
x
,则将使用局部变量。如果要引用类变量,则需要使用

Test.x

分析工具可以找到类似的东西。

嗯……不,我不是指语言中出现的范围阴影……但我指的是程序分析中出现的阴影术语。@ShivamMax你能链接任何关于它的文章吗?它实际上出现在许多研究论文中@如果你没有推荐人,我帮不了你。我还没有听说过这种情况下的影子。好吧……我会尝试链接一个PDF来说明它!无论如何,谢谢!:)