【问题标题】:What is a shadow exactly, in static analysis of code?在代码的静态分析中,阴影到底是什么?
【发布时间】:2013-12-13 13:12:21
【问题描述】:

我试图寻找这个问题的答案!有很多关于影子的论文。这究竟是什么?

【问题讨论】:

    标签: java static code-analysis analysis


    【解决方案1】:

    假设您正在谈论使用名称进行遮蔽,Java Language specification 会这样说

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

    并给出这个例子

    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);
        }
    }
    

    其中xstatic 类变量和局部变量。如果在定义局部变量x的方法中引用了x,则将使用局部变量。如果要引用类变量,则需要使用

    Test.x
    

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

    【讨论】:

    • 嗯……不,我不是指语言中出现的 Scope 的影子……但我说的是程序分析中出现的影子术语。
    • @ShivamMax 你能链接任何谈论它的文章吗?
    • 它实际上出现在很多研究论文中!
    • @ShivamMax 如果你没有参考资料,我帮不了你。在这种情况下,我还没有听说过shadow
    • 好的...我会尝试链接一个关于它的PDF!不管怎么说,多谢拉! :)
    猜你喜欢
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 2020-07-03
    • 1970-01-01
    • 2012-10-04
    • 2023-03-25
    相关资源
    最近更新 更多