当前位置: 首页 > 知识库问答 >
问题:

存储对象以供以后在java中使用

朱慈
2023-03-14

我正在使用放心进行API测试自动化。我想在调用API后将响应存储为对象,这样我就可以使用该对象验证一些数据,如状态代码、正文、标题等。

我试着使用系统。setProperty但它只允许存储字符串,如果将响应存储为类似字符串的系统。setProperty(“test”,response.toString())并尝试检索系统。getProperty(“测试”) 然后抛出错误

JAVAClassCastException:java。无法将lang.String转换为io。重新发行。回答回答

它有一种方法来存储一个对象的地方,并访问它为以后使用?


共有1个答案

马绪
2023-03-14

不要使用系统。属性用于此目的。请使用下面给出的简单缓存存储

public class ResponseCache {
    private static final ResponseCache myInstance = new ResponseCache();

    private final Map<String, Response> cacheStore = new HashMap<>();

    private ResponseCache() {
    }

    public static ResponseCache getInstance() {
        return myInstance;
    }

    public void addResponse(String key, Response value) {
        cacheStore.put(key, value);
    }

    public boolean exists(String key) {
        return cacheStore.containsKey(key);
    }

    public void remove(String key) {
        if (exists(key)) {
            cacheStore.remove(key);
        }
    }

    public Response get(String key) {
        return exists(key) ? cacheStore.get(key) : null;
    }

}

执行工作完成后,可以删除该密钥。

 类似资料:
  • 我正在为我的管道使用声明性语法,并希望存储在我的一个阶段上使用的工作区的路径,以便在以后的阶段可以使用相同的路径。 我已经看到我可以调用来获取当前目录,但是如何分配给要在阶段之间使用的变量? 编辑 我试图通过定义自己的自定义变量并在ws指令中使用like so来实现这一点: 在Jenkins构建控制台中,我看到这样的情况: 从第一阶段分配的原始工作空间实际上是 所以它看起来不起作用,我做错了什么?

  • tl; dr: 如何/可以将多个js-函数的函数句柄存储在java中以供以后使用?目前我有两个想法: > 创建多个脚本引擎实例,每个实例包含一个加载的函数。将它们按列存储在地图中,列表中每列有多个条目。看起来开销很大,这取决于ScriptEngine实例的“重量”。。。 一些Javascript解决方案将相同目标字段的方法附加到数组。还不知道如何从java端访问它,但也不喜欢它。希望尽可能保持脚本

  • 本文向大家介绍如何临时存储数据以便以后在Oracle中使用?,包括了如何临时存储数据以便以后在Oracle中使用?的使用技巧和注意事项,需要的朋友参考一下 问题: 您要临时存储SQL的结果。 解 我们可以使用CREATE GLOBAL TEMPORARY TABLE语句创建一个表,该表临时存储会话的数据。此外,您可以指定是保留会话的临时表数据还是事务提交之前。我们可以进一步使用ON COMMIT

  • 问题内容: 假设我正在Jupyter / Ipython笔记本中进行较大的数据分析,并且完成了大量耗时的计算。然后,由于某种原因,我必须关闭jupyter本地服务器I,但是我想稍后再进行分析,而不必再次进行所有耗时的计算。 我想什么 想 爱做的是或存储整个Jupyter会话(所有大熊猫dataframes,np.arrays,变量,…),所以我可以放心地关闭服务器知道我可以在完全相同的状态返回到我

  • 问题内容: 我知道这取决于系统中可用的内存,还取决于良好的哈希函数,但总的来说,我想知道您使用的最大地图是什么,以及是否开箱即用,需要进行任何调整才能使其正常运行。 问题答案: Java中的A 最多可以有2 ^ 30个存储桶来存储条目- 这是因为所使用的存储桶分配技术要求存储桶的数量为2的幂,并且因为ints是用Java签名的,所以最大正值是2 ^ 31-1,因此2的最大乘方是2 ^ 30。 但是