android Java中的Context是什么?[副本]

yeotifhr  于 2023-05-12  发布在  Android
关注(0)|答案(4)|浏览(93)

此问题已在此处有答案

What is 'Context' on Android?(31答案)
9年前关闭。
社区在8个月前审查了是否重新打开此问题,并将其关闭:
原始关闭原因未解决
我在谷歌上搜索了这个并阅读了Java文档,但我有点困惑。有人能用简单的英语解释一下Context是什么吗?

nle07wnf

nle07wnf1#

在编程术语中,它是较大的周围部分,可以对当前工作单元的行为产生任何影响。例如,所使用的运行环境、环境变量、示例变量、局部变量、其他类的状态、当前环境的状态等。
在一些API中,你可以在接口/类中看到这个名字,例如。Servlet的ServletContext、JSF的FacesContext、Spring的ApplicationContext、Android的Context、JNDI的InitialContext等。它们通常都遵循Facade Pattern,它将最终用户不需要知道的环境细节抽象到单个接口/类中。

rggaifut

rggaifut2#

Context代表您的环境。它表示您在系统中所处位置周围的状态。
例如,在Java的Web编程中,你有一个请求和一个响应。它们被传递给Servlet的服务方法。
Servlet的一个属性是ServletConfig,其中是ServletContext。
ServletContext用于告诉servlet有关Servlet所在容器的信息。
因此,ServletContext表示其容器中的servlet环境。
类似地,在Java EE中,元素(如会话bean)可以访问EBJContexts,以便与它们的容器一起工作。
这是今天Java中使用的两个上下文示例。
编辑--
你提到了Android。
标签:http://developer.android.com/reference/android/content/Context.html
您可以看到此Context如何为您提供有关Android应用部署位置和可用内容的各种信息。

xpcnnkqh

xpcnnkqh3#

简单地说,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);
附言
这就是BalusC对模式Facade更严格的描述。

6yjfywim

6yjfywim4#

由于您将单词大写,我假设您指的是接口javax.naming.Context。有几个类实现了这个接口,在最简单的描述中,它(通常)是一组名称/对象对。

相关问题