首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

getContext()方法在片段中返回null。将上下文保存在变量中是个好主意吗?我想了解其中的利弊。

getContext()方法在片段中返回null。将上下文保存在变量中是个好主意吗?我想了解其中的利弊。

在理解这个问题之前,我们需要了解一些背景知识。在云计算领域中,上下文通常指的是程序执行的环境和状态信息。getContext()方法是一种用于获取当前上下文的方法。

当getContext()方法在片段中返回null时,意味着无法获取当前上下文。这可能是由于上下文未正确初始化或其他原因导致的。在这种情况下,将上下文保存在变量中可能是一个好主意,因为它可以提供一个备份的上下文,以便在需要时使用。

利益:

  1. 灵活性:将上下文保存在变量中可以使程序更加灵活,因为您可以在需要时随时访问上下文,而不必依赖于getContext()方法的返回值。
  2. 性能优化:如果您需要频繁地访问上下文,将其保存在变量中可以避免多次调用getContext()方法,从而提高程序的性能。

劣势:

  1. 内存占用:保存上下文可能会占用额外的内存空间,特别是如果上下文对象很大或者需要保存多个上下文对象时。
  2. 数据一致性:如果上下文对象在程序执行过程中发生变化,而您没有及时更新保存的上下文变量,可能会导致数据一致性的问题。

总结起来,将上下文保存在变量中可以提供灵活性和性能优化的好处,但也需要注意内存占用和数据一致性的问题。在实际应用中,需要根据具体情况权衡利弊,选择适合的方式来处理上下文。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

struts2action如何获取jsp页面参数

执行时下文,上下文可以看作容器(其实我们这里容器就是一Map而已),它存放Action执行时需要用到对象....实现ThreadLocal内部类.ThreadLocal可以命名为"线程局部变量",它为每一使用该变量线程都提供一变量副本,使每一线程都可以独立地改变自己副本,而不会和其它线程副本冲突...4. struts2获得request、response和session (1)非IoC方式 方法一:使用org.apache.struts2.ActionContext类,通过它静态方法getContext...sessionMap对象, Struts2底层session都被封装成了Map类型....(); 这条语句放在这个位置错误,同样把这条语句放在构造方法也是错误

2.3K150

多线程引发惨案直接把年终给干没了

问题简述 先简单介绍一下问题产生背景,我们有返利业务,其中搜索场景,这个场景用户 app 输入搜索关键词,然后 server 会根据这个关键词到各个平台(如淘宝,京东,拼多多等)调一下搜索接口...2.简化变量传递逻辑 接下来我们来看使用 ThreadLocal 等二好处,简化变量传递逻辑,线程处理业务逻辑时可能会调用几十方法,如果这些方法只有几个需要用到 clientInfo,难道要在这几十方法定义一...由上文可知通过 ThreadLocal 设置本地变量同 threadlocal 一起保存在 Thread ThreadLocalMap 这个内部类,所以可在线程调用任意方法取出,伪代码如下...变量,这么做不是不可以,但不够优雅,更合适做法我们只定义一 ThreadLocal 变量变量下文对象,其他像 clientInfo,userId,header 等信息就作为此上下文对象属性即可...此外我们 getMap 和 createMap 这两方法也发现它底层其实是用 inheritableThreadLocals 来存储,而 ThreadLocal 用 threadLocals

30520
  • 通过添加HTTP Header实现上下文数据WCF自动传递

    多年之前,写了一篇通过WCF扩展实现上下文信息从客户端自动传递到服务端文章,其实现机制很简单:将上下文信息存放到SOAP Header进行传递。...三、创建ContextSender将上下文附加到请求消息HTTP Header 实现上下文从客户端到服务端自动传递需要解决两问题:客户端将当前上下文附加到请求消息,服务端则从请求消息获取上下文信息并作为当前下文...BeforeSendRequest方法,我们将所有上下文元素置于请求消息HTTP Header之中。...而上下文获取和设置实现在BeforeInvoke方法,确保服务操作执行时候当前上下文信息已经存在。...整个HTTP请求消息如下所示,从中我们可以清楚地看到两下文存在于HTTP Header列表

    1.5K110

    ThreadLocal案例分析

    而用synchronized修饰过后,串行访问时就不存在不可见情况。从而保证了count变量正确性。那么是否可以换个思路:让变量只能被一线程访问,这不就不存在之前谈到线程安全问题了吗?...= null) m.remove(this); } 1.1.2 变量生命周期 这里所变量指的是存储Thread对象变量副本。...当第一次接触Struts2时候,曾一直困惑于一问题:Action每个方法请求参数怎么获得?处理结果又是如何返回?...数据不再需要作为方法参数传入或作为返回返回。Struts2返回值仅仅作为控制流标识(比如:选择哪个视图)。Struts2数据载体就是ActionContext。...其中解决并发问题本质一种以空间换时间思路,时间效率提升了,但是也存在着内存使用时潜在溢出风险。

    45210

    Spring Security (一) Architecture Overview

    前者致力于让读者先了解整体架构,方便让我们有一宏观把控,而后者以特定demo配合讲解,可以让读者解决问题过程顺便掌握一门技术。...(…)方法,设置到其中。...,对应方法便是retrieveUser,虽然有两参数,但是retrieveUser只有第一参数起主要作用,返回UserDetails。...如果你已经被这些概念搞得晕头转向了,不妨这么理解DaoAuthenticationProvider:它获取用户提交用户名和密码,比对其正确性,如果正确,返回数据库用户信息(假设用户信息被保存在数据库...还记得Authentication接口中getUserDetails()方法其中UserDetails用户详细信息便是经过了AuthenticationProvider之后被填充

    1.1K60

    Spring Security(一)--Architecture Overview

    前者致力于让读者先了解整体架构,方便让我们有一宏观把控,而后者以特定demo配合讲解,可以让读者解决问题过程顺便掌握一门技术。...(…)方法,设置到其中。...,对应方法便是retrieveUser,虽然有两参数,但是retrieveUser只有第一参数起主要作用,返回UserDetails。...如果你已经被这些概念搞得晕头转向了,不妨这么理解DaoAuthenticationProvider:它获取用户提交用户名和密码,比对其正确性,如果正确,返回数据库用户信息(假设用户信息被保存在数据库...还记得Authentication接口中getUserDetails()方法其中UserDetails用户详细信息便是经过了AuthenticationProvider之后被填充

    98880

    Context都没弄明白,还怎么做Android开发?

    Context到底是什么 Context中文翻译为:语境; 上下文; 背景; 环境,开发我们经常说称之为“上下文”,那么这个“上下文”到底指什么意思呢?...它是一抽象类,它执行被Android系统所提供。它允许获取以应用为特征资源和类型,统领一些资源(应用程序环境变量等)下文。...出于安全原因考虑,Android不允许Activity或Dialog凭空出现,一Activity启动必须要建立另一Activity基础之上,也就是以此形成返回栈。...getApplication()方法语义性非常强,一看就知道用来获取Application实例,但是这个方法只有Activity和Service才能调用到。...那么也许绝大多数情况下我们都是Activity或者Service中使用Application,但是如果在一些其它场景,比如BroadcastReceiver获得Application实例

    36020

    超性感React Hooks(二)再谈闭包

    就以我和PP同学面试过程对话为引子,对话内容大概如下: :能聊聊你对闭包理解 PP:函数执行时访问上层作用域变量,就能形成闭包,闭包可以持久化保持变量:还有其他?...接着聊闭包与模块之间联系之前,我们先来回顾几个概念。 闭包特殊对象 它由两部分组成,执行上下文A以及A创建函数B。 当B执行时,如果访问了A变量对象,那么闭包就会产生。...思考题:setCounter执行会产生闭包? 根据闭包特性,state模块state变量,会持久存在。...这个文件共有两千多行,非常复杂模块。 第一步,要搞清楚这个模块作用。 具体方法观察模块返回了什么内容。搜索export。...经过简单分析,所有的核心逻辑都写在renderWithHooks。通过断点调试也能定位到这个方法。 快速分析一函数作用,一思路看它返回了什么,二思路看它改变了什么。

    1.3K20

    写给精明Java开发者测试技巧

    但是,今天和你谈论一系列小建议,这些建议可以帮助你头脑中理清测试自下而上如何运作。从如何构造一简单单元测试到对 mock(模拟) 和 spy(监视) 以及复制粘贴测试代码更高层次理解。...我们正在破坏单元测试中一基本规则:只测试单独单元,而不是这个单元实现细节。 并不是在说单元测试只能测试单独类。然而在大多数情况下,把类作为一单独单元考虑,可能好主意。...了解何时使用断言 对于编写应用程序测试来说,JUnit和TestNG都是非常优秀框架,它们提供了许多不同方法测试对一值进行断言。例如,检查两相同还是不同,或者值是否为空。...有时,Spy应用程序在做什么,或者验证程序使用特定参数调用了特定方法并调用了指定次数,很有用。有时,我们触发数据库层,但又想模拟数据库返回给我们响应。...当你想在代码片段强行设定某些条件时,存根会很有用,例如,如果数据库调用失败,而你希望测试触发数据库异常处理。存根模拟对象特例。

    2.1K10

    [干货]让你彻底搞懂 Context 到底是什么,如果没弄明白,还怎么做 Android 开发?

    Context到底是什么 Context中文翻译为:语境; 上下文; 背景; 环境,开发我们经常说称之为“上下文”,那么这个“上下文”到底指什么意思呢?...它是一抽象类,它执行被Android系统所提供。它允许获取以应用为特征资源和类型,统领一些资源(应用程序环境变量等)下文。...出于安全原因考虑,Android不允许Activity或Dialog凭空出现,一Activity启动必须要建立另一Activity基础之上,也就是以此形成返回栈。...getApplication()方法语义性非常强,一看就知道用来获取Application实例,但是这个方法只有Activity和Service才能调用到。...那么也许绝大多数情况下我们都是Activity或者Service中使用Application,但是如果在一些其它场景,比如BroadcastReceiver获得Application实例

    1.3K20

    Context都没弄明白,还怎么做Android开发?

    Context到底是什么 Context中文翻译为:语境; 上下文; 背景; 环境,开发我们经常说称之为“上下文”,那么这个“上下文”到底指什么意思呢?...它是一抽象类,它执行被Android系统所提供。它允许获取以应用为特征资源和类型,统领一些资源(应用程序环境变量等)下文。...出于安全原因考虑,Android不允许Activity或Dialog凭空出现,一Activity启动必须要建立另一Activity基础之上,也就是以此形成返回栈。...getApplication()方法语义性非常强,一看就知道用来获取Application实例,但是这个方法只有Activity和Service才能调用到。...那么也许绝大多数情况下我们都是Activity或者Service中使用Application,但是如果在一些其它场景,比如BroadcastReceiver获得Application实例

    79840

    Callable接口能有多少知识点?

    只要一接口中只包含有一方法,那么,这个接口就是函数式接口。 JDK,实现Callable接口子类如下图所示。...虽然这些类实际工作很少被直接用到,但是作为一名合格开发工程师,设置秃顶资深专家来说,了解并掌握这些类实现有助你进一步理解Callable接口,并提高专业技能(头发再掉一批,哇哈哈哈。。。)。...private static native AccessControlContext getStackAccessControlContext(); 原来本地方法方法字面意思就是获取能够访问系统栈决策上下文对象...并在构造方法为三成员变量赋值,如下所示。...如果任务没有被取消,则更新任务缓存,将调用call()方法返回泛型对象绑定到Task对象ObjectProperty对象其中,ObjectPropertyTask类定义如下。

    22520

    针对高级前端8级JavaScript面试问题

    + 运算符有一有趣特性,那就是当其中操作数字符串时,它更倾向于执行字符串连接。我们例子,'1' 字符串,因此 JavaScript 隐式地将数字 1 转换为字符串。...为了解决由于数组长度增长而导致无限循环问题,可以进入循环之前将数组初始长度存储变量。然后,可以使用这个初始长度作为循环迭代限制。...当一对象需要基本值下文中被使用时,JavaScript 首先会在对象内部查找valueOf方法。...valueOf方法存在或不返回适当基本值情况下,JavaScript会退回到toString方法。这个方法负责提供对象字符串表示形式。...然而,valueOf方法存在或不返回适当基本值情况下,JavaScript会退回到toString方法

    18410

    针对高级前端8级JavaScript面试问题

    + 运算符有一有趣特性,那就是当其中操作数字符串时,它更倾向于执行字符串连接。我们例子,'1' 字符串,因此 JavaScript 隐式地将数字 1 转换为字符串。...为了解决由于数组长度增长而导致无限循环问题,可以进入循环之前将数组初始长度存储变量。然后,可以使用这个初始长度作为循环迭代限制。...当一对象需要基本值下文中被使用时,JavaScript 首先会在对象内部查找valueOf方法。...valueOf方法存在或不返回适当基本值情况下,JavaScript会退回到toString方法。这个方法负责提供对象字符串表示形式。...然而,valueOf方法存在或不返回适当基本值情况下,JavaScript会退回到toString方法

    21330

    2020年了,Android后台活还有戏?看我如何优雅实现!

    除了之前那些耳熟能详活黑科技以外,Android 9.0(甚至Android 10)时代,我们还有哪些方法可以用?那么,请跟着本文作者思路,看看更优雅后台活实现方法吧。...下次被产品说「 XXX 都可以活,为什么我们不行!」时候,你就知道怎么怼回去了。大厂通过和手机厂商合作,将自己应用默认加入到白名单。如果你能谈成这种合作大厂,也就不用往下看了。...不同厂商不同地方进行设置,一般各自「手机管家」,但更难,就算同一厂商系统,不同版本也可能不同地方设置。...之前做跑步应用设置里增加了一权限设置页面,将上面提到设置放在这里面。 最近发现友商某咚也跟进了,图 1 我们做,图 2 某咚做: ?...某咚从设计、从不够好文案,甚至从十几台手机上一张一张截下来图,进行了全方位致敬。感谢某咚认可,但最近在某个发布会上听到这么一句话:致敬同时,能不能说一句谢谢?

    5.7K21

    Android进程活全攻略(上)

    ,阐述关于进程所有方法,以及实现方式,若有错漏之处,大家可以博客进行留言。...进程被杀死场景很多,例如被第三方应用杀死(360管家等),关机等等,不同场景调用系统接口也是不同,同时杀死oom_adj值范围也是不同,于是将这些场景总结成了一表格,方便大家了解:...2.常见活拉起方式 了解进程被杀死相关场景后,相信大家对进程活已经有了初步认识,接下来将给大家介绍一下,现在市面上存在各种常见活拉起方式,这些活方式如下: **a) 将Service...(1, notification); 2) serviceonstart方法返回 STATR_STICK 思路:其实就是onStartCommand返回STATR_STICK 活程度:...4) 覆写ServiceonDestroy方法 思路:onDestroy再次启动该服务 活程度:很弱,只两种情况下work:正在运行里杀服务、DDMS里stop进程 代码实现:

    1.1K50

    高并发之——深入解析Callable接口

    只要一接口中只包含有一方法,那么,这个接口就是函数式接口。 JDK,实现Callable接口子类如下图所示。 ?...虽然这些类实际工作很少被直接用到,但是作为一名合格开发工程师,设置秃顶资深专家来说,了解并掌握这些类实现有助你进一步理解Callable接口,并提高专业技能(头发再掉一批,哇哈哈哈。。。)。...private static native AccessControlContext getStackAccessControlContext(); 原来本地方法方法字面意思就是获取能够访问系统栈决策上下文对象...并在构造方法为三成员变量赋值,如下所示。...如果任务没有被取消,则更新任务缓存,将调用call()方法返回泛型对象绑定到Task对象ObjectProperty对象其中,ObjectPropertyTask类定义如下。

    41220
    领券