我如何将 Object 转换为 Long

How do I case Object to Long

我有一个 returns 值为 24566.999 的对象(实际上表示以毫秒为单位的时间) 现在我想把它转换成长 我试过这样做

        JavascriptExecutor js = (JavascriptExecutor) driver;
        Object x = js.executeScript("return Date.now() - performance.timeOrigin;");
        long hh = Long.parseLong(String.valueOf(x));

这会引发数字格式异常,因为字符串有一个“.”。在里面。 另外,我不能忽略它,因为它实际上告诉我时间,我实际上需要将它除以 1000 才能得到以秒为单位的时间 如何将其转换为长?

编辑 另外,我试过这样做

public Long getPageLoadTime(WebDriver driver) {
Object x = ((JavascriptExecutor) driver).executeScript("return Date.now() - performance.timeOrigin;")
         return ((Double) x.longValue();
    }

外面是这样称呼的

System.out.println("PageLoad Time: " + (commonUtils.getPageLoadTime(utils.getWebDriver())) / 1000 + " Seconds");

它抛出 This throws java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Double

这种场景你可以看看BigDecimal。试试下面的代码:

JavascriptExecutor js = (JavascriptExecutor) driver;
Object x = js.executeScript("return Date.now() - performance.timeOrigin;");
long hh = new BigDecimal(String.valueOf(x)).longValue();