我用Google搜索并阅读了Java文档,但我有点困惑。有人可以用简单的英语解释一下Context
是什么意思吗?
答案 0 :(得分:87)
在编程术语中,它是较大的周围部分,可以对当前工作单元的行为产生任何影响。例如。使用的运行环境,环境变量,实例变量,局部变量,其他类的状态,当前环境的状态等。
在某些API中,您会在界面/类中看到此名称,例如Servlet的ServletContext
,JSF的FacesContext
,Spring的ApplicationContext
,Android的Context
,JNDI的InitialContext
等等。它们都经常跟随Facade Pattern摘要最终用户不需要在单个界面/类中了解环境细节。
答案 1 :(得分:25)
Context代表您的环境。它表示您在系统中所处的状态。
例如,在Java中的Web编程中,您有一个Request和一个Response。它们被传递给Servlet的服务方法。
Servlet的一个属性是ServletConfig,其中有一个ServletContext。
ServletContext用于告诉servlet Servlet所在的Container。
因此,ServletContext表示其容器中的servlet环境。
类似地,在Java EE中,您有EBJContexts,元素(如会话bean)可以访问它们的容器。
这是Java中使用的上下文的两个例子。
编辑 -
你提到Android。
请看这里:http://developer.android.com/reference/android/content/Context.html
您可以看到此上下文如何为您提供有关Android应用程序部署位置以及可用内容的各种信息。
答案 2 :(得分:5)
简单地说,Java上下文一起表示Java native
方法。
在下一个Java代码中,两行代码需要上下文:// (1)
和// (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)需要上下文,因为是由Java本机方法调用的 private native void java.lang.Thread.start0();
(2)reader.readLine()
需要上下文,因为调用Java本机方法 public static native void java.lang.System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
PS。
这就是BalusC对Facade模式的更严格的说法。
答案 3 :(得分:0)
因为你把这个词大写了,我假设你指的是接口javax.naming.Context
。一些类实现了这个接口,并且在最简单的描述中,它(通常)是一组名称/对象对。