gpt4 book ai didi

Java:如何将整个对象存储到外部位置并重用它来重新创建对象以供以后使用?

转载 作者:行者123 更新时间:2023-12-02 13:10:06 24 4
gpt4 key购买 nike

我正在寻找一种将实例化对象及其所有属性存储到外部位置并稍后重用的方法。

到目前为止我尝试过的:
我遇到了这个[Serialization?]回答并尝试了它,但我得到的对象是空的。

算法/粗略代码:

@Listeners(TestListener.class)
public class TestRunner {
protected static Driver driver; //Driver implements WebDriver interface

//Step 1
public void method1(){
driver = new Driver(1); //creates a customized chromedriver instance. Chrome driver / browser session is opened here.
}

//Step 2
public void method2(){
try {
FileOutputStream fileOut = new FileOutputStream("card.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(driver);
out.close();
fileOut.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}

//Step 3
//Just manually stop the test/debugger for testing

//Step 4
public void method4(){
try {
FileInputStream fileIn = new FileInputStream("card.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
driver = (Driver) in.readObject(); //here driver returns as null. In this line, im hoping to recreate the previous object to somehow control the browser again
in.close();
fileIn.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

一些信息:
这实际上与 this 中的 Selenium WebDriver 问题有关。所以问题。

所以我想做的是:

  • 第 1 步:创建 chrome 驱动程序的自定义实例
  • 步骤 2:使用上述代码将创建的对象存储到外部源中
  • 第3步:我故意停止测试来模拟失败
  • 步骤 4:我尝试通过读取存储的源来重新创建先前的对象。

    我之前没有序列化背景,我不确定我想做的事情是否可行。非常感谢任何帮助或指导。

  • 最佳答案

    假设 Driver 类也实现了 Serialized,我在代码中看到的一个问题是,驱动程序被声明为 protected 静态 Driver 驱动程序,但假设创建此类实例的方法 1 永远不会被执行,因此您不会执行当您序列化它时,没有该对象。在序列化之前尝试调用方法 1,如下所示:

     public void method2(){
    try {
    FileOutputStream fileOut = new FileOutputStream("card.ser");
    ObjectOutputStream out = new ObjectOutputStream(fileOut);
    method1();
    out.writeObject(driver);
    out.close();
    fileOut.close();
    } catch (Exception ex) {
    ex.printStackTrace();
    }
    }

    关于Java:如何将整个对象存储到外部位置并重用它来重新创建对象以供以后使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43991767/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com