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来说明它!无论如何,谢谢!:)