studio - ¿Qué es exactamente un contexto en Java?
new icon java (4)
Esta pregunta ya tiene una respuesta aquí:
- ¿Qué es ''Contexto'' en Android? 29 respuestas
Busqué en Google esto y leí la documentación de Java, pero estoy un poco confundido. ¿Alguien puede explicar qué es un Context
en inglés simple?
En términos de programación, es la parte circundante más grande la que puede tener alguna influencia en el comportamiento de la unidad de trabajo actual. Por ejemplo, el entorno de ejecución utilizado, las variables de entorno, las variables de instancia, las variables locales, el estado de otras clases, el estado del entorno actual, etcétera.
En algunas API, usted ve este nombre en una interfaz / clase, por ejemplo Servlet''s ServletContext
, FacesContext
de JSF, FacesContext
Spring, Context
de Android, InitialContext
de JNDI, etc. A menudo siguen el patrón Facade que abstrae los detalles ambientales que el usuario final no necesita saber acerca de distancia en una sola interfaz / clase.
Simplemente diciendo, el contexto de Java significa todos los métodos native
Java.
En el siguiente código Java, dos líneas de código necesitan contexto: // (1)
y // (2)
import java.io.*;
public class Runner{
public static void main(String[] args) throws IOException { // (1)
File file = new File("D:/text.txt");
String text = "";
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null){ // (2)
text += line;
}
System.out.println(text);
}
}
(1) necesita contexto porque es invocado por el método nativo Java private native void java.lang.Thread.start0();
(2) reader.readLine()
necesita contexto porque invoca el método nativo de Java public static native void java.lang.System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
PD.
Eso es lo que BalusC dice sobre el patrón Facade más estrictamente.
Un contexto representa tu entorno. Representa el estado en el que se encuentra en su sistema.
Por ejemplo, en la programación web en Java, tiene una Solicitud y una Respuesta. Estos se pasan al método de servicio de un servlet.
Una propiedad del Servlet es ServletConfig, y dentro de eso hay un ServletContext.
El ServletContext se usa para informar al servlet sobre el contenedor en el que se encuentra el servlet.
Por lo tanto, ServletContext representa el entorno de servlets dentro de su contenedor.
Del mismo modo, en Java EE, tiene EBJContextos a los que los elementos (como beans de sesión) pueden acceder para trabajar con sus contenedores.
Esos son dos ejemplos de contextos utilizados en Java hoy en día.
Editar -
Mencionas Android.
Mira aquí: Context
Puede ver cómo este Contexto le brinda todo tipo de información sobre dónde se implementa la aplicación Android y qué hay disponible.
ya que ha puesto en mayúscula la palabra, supongo que se está refiriendo a la interfaz javax.naming.Context
. Algunas clases implementan esta interfaz, y en su descripción más simple, (genéricamente) es un conjunto de pares de nombre / objeto.