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

Spring Boot集成Caffeine Cache遇到获取到缓存对象当初设置对象不同问题

背景 在使用本地缓存Caffeine,遇到了一个问题,代码逻辑大致如下,先从本地缓存中根据Key尝试获取Apple对象,如果没有获取到的话,则初始化一个名为“小花生”苹果并放到Caffeine本地缓存中去...但是放完了之后,我又对此对象进行了一个设置,把名字从“小花生”改成了“翎野君”,但是至此我直接返回对象,并没有再将这个对象第二次放到缓存中去。...apple); } apple.setName("翎野君"); return apple; } 原因 在网上搜索一下,所谓内存缓存,我们可以理解我们缓存数据都存在于一个缓存框架管理类中...当我们尝试从缓存中取我们需要,就是调用了该类一个 get 方法。该类持有的是我们存储数据引用,我们从缓存中拿到所需数据引用。...我们通过引用,修改数据,修改都是引用指向实际数据本身。 所以,我们修改了从缓存中取得数据后,缓存中实际存储数据也被修改了,我们再从缓存中取,取得就是修改后数据了。

53220

Excel VBA编程

属性 range对象end属性 value属性——单元格中内容 count属性,获得区域中包含单元格个数 通过address属性获取单元格地址 用activateselect方法选中单元格 copy...对象,集合及对象属性方法 对象就是东西,使用VBA代码操作和控制东西,属于名词。...每个对象都有属性,对象属性可以理解这个对象包含内容或者具有的特征。对象属性是相对而言。...("B4:F10").columns.count 通过address属性获取单元格地址 msgbox "当前选中单元格地址"&selection.address 用activateselect方法选中单元格...编写事件过程,通常我们都采用这种方式:依次在【代码窗口】对象】列表框【事件】列表框中选择相应对象及事件名称,让VBA自动替我们设置事件过程作用域、过程名称以及参数信息 更改单元格自动执行 Private

45K21
您找到你想要的搜索结果了吗?
是的
没有找到

Application主程序对象方法(二)

大家好,上节介绍了application主程序对象ontime方法,本节介绍onkey方法inputbox方法。onkey方法是用于程序设置快捷键,inputbox方法可以创建弹窗输入信息。...主程序对象onkey方法,设置快捷键CtrlUp键。...如果type参数值8,inputbox方法将返回一个range对象,此时注意需要用set赋值语句,将结果赋值给一个range对象变量。...("选择单元格设置背景色", _ "测试", Selection.Address, , , , , 8) rng.Interior.ColorIndex = 5 End Sub 代码中首先定义了rng变量单元格对象...Selection.Address表示鼠标选中单元格地址,最后tpye=8限制返回数据类型是8,不同参数用英文逗号间隔,其中不需要设置参数略过即可。)

1.8K20

一篇短文,深入理解Application.Caller

标签:VBA 我们经常会在VBA代码中看到Application.Caller,它到底起什么作用,往往让人感到模糊。下面,我们就来详细讲讲,对其有更深入理解。 有下列3种常见情形。...情形1:如果从单元格/单元格区域调用VBA代码,那么Application.Caller返回代表该区域Range对象。...例如,如果从单元格/单元格区域调用UDF(用户定义函数),并且希望获取从中调用它单元格/单元格区域地址,那么可以使用以下代码实现。本例返回Range,也可以将它设置某个对象。...Function testRange() Dim objCaller As Object '或Range Set objCaller = Application.Caller Debug.Print...objCaller.Address '或Application.Caller.Address testRange = objCaller.Address End Function 效果如下图1所示

1.5K50

Python-Excel-02-对已存在Excel:打开,赋值,保存,关闭

constants as c # 旨在直接使用VBA常数 current_address = os.path.abspath('.') excel_address = os.path.join(current_address...) sht = wb.Worksheets(1) sht.Name = "示例" sht.Range("A1").Value = "小试牛刀" wb.Save() wb.Close() 代码截图 ?...,获取当前文件所在路径 os.path.join(current_address, "示例.xlsx"),获取示例.xlsx文件绝对地址 xl_app= win32com.client.gencache.EnsureDispatch...("Excel.Application"),引用Excel对象,接下来代码都可以按照VBA方式来写,注意Python是大小写敏感,这一点与VBA不同 Excel三大对象:工作簿-工作表-单元格 wb...表示工作簿对象 sht表示工作表对象 sht.Range(“A1”)表示第1个工作表A1单元格 注意这里sht.Range("A1").ValueValue不能省略 综上整体上与VBA代码一样,

2.6K10

VBA实战技巧26:使用递归确定所有的引用单元格

图1 根据VBA帮助文件,Range.Precedents属性返回一个Range对象,代表所有引用单元格。...这个限制由Range.Precedents属性定义所限制,因为该属性返回一个Range对象,而Range对象不能跨不同工作表引用单元格区域。...对代码功能一个简单增强是对它可以到达层级数添加了限制:在递归技术中经常需要设置这样限制。...GetAllPrecedents函数可能会返回重叠地址,例如B2:B10B4,因为它使用联合单元格区域地址以提高效率。当代码沿引用单元格树导航,如果它遇到之前导航过单元格,将忽略它。...同样,这是出于效率目的。该函数不能作为自定义函数工作,因为当调用者是RangeRange.ShowPrecedentsRange.NavigateArrows方法被禁用。

1.3K10

Excel催化剂开源第43波-Excel选择对象Selection在.Net开发中使用

Excel二次开发有一极大优势所在,可以结合用户交互进行程序运行,大量用户交互,都是从选择对象开始,用户选择了单元格区域、图形、图表等对象,之后再进行程序代码加工处理,生成用户所需最终结果...所以熟练处理选择对象,尤其关键,而在VBA使用方法,来到.Net中特别是C#语言下,就需要另外代码处理,希望此篇分享给VBA转VSTO朋友们带来一些帮助指引。...在VBA中,判断一个Selection对象是什么类型方法如下: Sub test() Dim sel Set sel = Selection If TypeOf sel Is Range Then...Debug.Print 1 End If End Sub 在C#中,想引用TypeOf方法,就要引用VisualBasicDll,麻烦,其实在C#里,可以直接用 is as 语句来实现此类判断...此代码中,用户选定Selection对象,有三类 单元格区域,类型Range,只获取单元格区域下形状。 多个形状,类型:DrawingObjects,获取选中多个形状。

1.3K20

Excel VBA解读(139): 用户定义函数计算了多次

UDFs Efficient系列,可能有点高深晦涩,但确实都是好VBA用户自定义函数编程细节技巧经验。...对于大多数人来说,你可以略过这些内容,因为我们只需懂得基础VBA用户自定义函数知识就足够了。对于想深入研究VBA的人来说,还是值得研究试验。...1.设置计算模式“手动重算”,以方便查看发生情况。...仅变体单元格对象参数不可计算 仅声明为Range或Variant用户定义函数参数不可计算。...条件格式公式中用户定义函数 每次包含条件格式屏幕部分被重新绘制或重新计算,都会评估条件格式规则中公式(可以通过在条件格式设置规则中使用用户定义函数中使用Debug.Print语句来证明这一点)

1.8K30

VBA专题11:详解UsedRange属性

由于UsedRange属性返回一个Range对象,因此Range对象可用所有属性方法也可用于UsedRange,这包括列/行计数、选择、清除、格式化区域导航。...此外,可以将其设置命名对象以方便引用,如下所示: Dim rng As Range Set rng =Worksheets("MySheet").UsedRange 其中,“MySheet”是想要操作工作表名称...设置命名对象(例如rng)后,在输入代码就可以利用VBA智能提示工具了。...图1 从上图1中可以看到,VBA尝试使用电子表格上数据来计算第一个单元格最后一个单元格,并选择该区域范围内所有内容。...应用3:找到工作表已使用区域第一行第一列 使用UsedRange属性,结合Range对象Row属性Column属性,很容易找到工作表已使用区域第一行第一列: Dim rng As Range

7.2K32

常见复制粘贴,VBA是怎么做(续)

参数Link可以建立到粘贴数据链接,要执行此操作,将该参数设置True;该参数默认值False,表示不建立到源数据链接。...在VBA中,“复制图片”对话框中每个选项都有对应VBA设置值。 Appearance参数指定如何将复制区域实际复制为图片。...此外,当单元格包含常量,Formula属性将返回常量。如果单元格空,则Range.Formula返回空字符串。...取消剪切或复制模式并删除移动轮廓VBA语句如下: Application.CutCopyMode = False 关于复制粘贴:其他VBA方法 基于本文介绍,可能还想学习或探索其他可用于粘贴其他对象或实现不同目标...上述列表没有包括复制粘贴对象所有VBA方法,主要涵盖了应用于某些主要对象方法,如图表工作表。 小结 现在,你应该了解了在Excel中复制粘贴单元格单元格区域可以使用最重要VBA方法。

9.9K30

VBA代码库09:增强CELL函数INFO函数

excelperfect 本文介绍自定义函数来源于wellsr.com,以ExcelCELL函数INFO函数样板,可直接返回工作表或工作簿名称或工作簿路径,以及与Excel及其操作环境有关各种信息...或 "help" 返回This文本列表 ' This = 上面没有列出任意字符串返回Environ(This) ' 如果Target空(默认), 则Target被设置引用此函数单元格(如果在VBA...A1)或VBA单元格区域如Range("A1") ' 仿照Excel内置信息函数CELLINFO ' 开发:wellsr.com Public FunctionNameOf(Optional ByVal...NameOf函数参数Target是Range对象,默认为公式所引用单元格即Application.ThisCell。如果指定Target,则必须是单元格地址如A1或Sheet1!...如果在VBA中使用NameOf函数,那么参数Target必须是Range对象Range(“A1”)或Cells(1)或ActiveCell。

4.5K10

暂停或延迟Excel VBA运行3种方法

2.延迟代码运行使得能够与外部事件(如数据库更新或web服务响应)进行协调,从而确保无缝集成实时数据处理。 3.VBA暂停使得有时间在继续操作之前查看信息或做出决定。...4.在批处理操作之间延迟代码运行可以有效地处理大型数据集或对多个对象执行操作,同时控制资源消耗 5.在VBA代码中引入延迟有助于创建一个更可控操作序列,允许脚本逐步执行或以特定间隔执行,从而增强整个脚本代码逻辑精确度...6.当要执行复杂而长VBA代码列表,暂停代码一段时间可以帮助避免笔记本电脑、台式机或服务器过热。 7.延迟VBA脚本允许按预定时间或间隔安排特定操作或事件,从而自动化任务并提高生产效率。...currentTime As Double Dim i As Long ' 以秒单位设置所需暂停持续时间 duration = 10 Set sourceRange = Range...如果VBA代码延迟不需要与Excel交互,则可以使用基于Application.WaitSleep函数方法。这些方法主要帮助在运行大型VBA脚本高效地分配PC资源。

2.5K30

VBA编程练习05. 在工作表中实现七段显示

学习Excel技术,关注微信公众号: excelperfect 本次练习题 这是一个有趣VBA编程练习,来自于dailydoseofexcel.com。...使用VBA代码在工作表中将数字显示七段显示,如下图1所示。 ? 图1 在单元格C9中输入四位及四位以内数字,在单元格区域B2:P6中会像电子显示屏一样以七段形式显示这个数字。...For i = 1 To lDISPCNT aRange(i) =Sheet1.Range("B2").Offset(0, (i - 1) * 4).Address Next...,输入下面的代码: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address =Me.Range("C9").Address...建议有兴趣朋友多调试理解这段代码,帮助理解数组运用、以及单元格获取、偏移、设置VBA操控Excel基础知识。

1.6K10

C#.NET 中启动进程所使用 UseShellExecute 设置 true false 分别代表什么意思?

在 .NET 中创建进程,可以传入 ProcessStartInfo 类一个新实例。在此类型中,有一个 UseShellExecute 属性。...本文介绍 UseShellExecute 属性作用,设为 true false ,分别有哪些进程启动行为上差异。...---- 本质差异 Process.Start 本质上是启动一个新子进程,不过这个属性不同,使得启动进程时候会调用不同 Windows 函数。...那你自然也就了解此属性设置 true false 区别了。...如果有以下需求,那么建议设置此值 false: 需要明确执行一个已知程序 需要重定向输入输出 如果你有以下需求,那么建议设置此值 true 或者保持默认: 需要打开文档、媒体、网页文件等 需要打开

66520
领券