¿Qué es exactamente una sombra, en el análisis estático del código?
Frecuentes
Visto 111 veces
1 Respuestas
3
Suponiendo que está hablando de sombra con nombres, el Especificación del lenguaje Java dice esto
Algunas declaraciones pueden estar sombreadas en parte de su alcance por otra declaración del mismo nombre, en cuyo caso no se puede usar un nombre simple para referirse a la entidad declarada.
y da este ejemplo
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);
}
}
donde x
es un static
variable de clase y una variable local. La variable local se utilizará si x
se hace referencia en el método a la variable local x
se define en. Si quisiera hacer referencia a la variable de clase, necesitaría usar
Test.x
Las herramientas de análisis pueden encontrar cosas como esta.
respondido 27 nov., 13:18
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java static code-analysis analysis or haz tu propia pregunta.
Umm... no, no me refería a las sombras de Scope que ocurren en los idiomas... pero estoy hablando del término Shadow que ocurre en Program Analysis. - Shivam Max
@ShivamMax ¿Puedes vincular algún artículo que hable sobre eso? - Sotirios Delimanolis
¡En realidad aparece en muchos artículos de investigación! - Shivam Max
@ShivamMax Si no tiene una referencia, no puedo ayudarlo. no he oído hablar
shadow
en ese contexto. - Sotirios DelimanolisDe acuerdo ... ¡Intentaré vincular un PDF que diga al respecto! ¡Gracias de todos modos! :) - Shivam Max