关于android:Java中的Context究竟是什么?

What exactly is a Context in Java?

本问题已经有最佳答案,请猛点这里访问。

我搜索了这个,阅读了Java文档,但是我有点困惑。有人能用简单的英语解释一下Context是什么吗?


在编程方面,它是一个较大的周围部分,可以对当前工作单元的行为产生任何影响。例如,所使用的运行环境、环境变量、实例变量、局部变量、其他类的状态、当前环境的状态等。

在某些API中,您可以在接口/类中看到这个名称,例如servlet的ServletContext、jsf的FacesContext、spring的ApplicationContext、android的Context、jndi的InitialContext等。它们通常都遵循facade模式,抽象出最终用户不需要在单个接口/类中了解的环境细节。


上下文代表您的环境。它表示系统中您所在位置周围的状态。

例如,在Java中的Web编程中,您有一个请求和一个响应。它们被传递给servlet的服务方法。

servlet的一个属性是servletconfig,其中是servletcontext。

servletContext用于告诉servlet关于servlet所在的容器的信息。

因此,servletContext表示其容器中的servlets环境。

类似地,在JavaEE中,您有EBJVIEWTS,这些元素(如会话bean)可以访问它们的容器。

这是当今爪哇使用的两个例子。

编辑——

你提到安卓。

请访问:http://developer.android.com/reference/android/content/context.html

您可以看到这个上下文如何为您提供各种关于安卓应用程序部署位置和可用性的信息。


简单地说,Java上下文意味着Java EDCOX1和6种方法都在一起。

在下一个Java代码中,两行代码需要上下文:EDCOX1,7,EDCX1,8。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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原生方法EDCOX1(9)调用

(2)EDCOX1·10需要上下文,因为调用Java本机方法EDCOX1〔11〕

PS。

这就是俾路支更严格地说的模式立面。


既然你把这个词大写了,我想你指的是javax.naming.Context接口。一些类实现了这个接口,在其最简单的描述中,它(一般地)是一组名称/对象对。