gpt4 book ai didi

javascript - 这行 JS 代码与 Java 的正确等价物是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 09:39:29 27 4
gpt4 key购买 nike

在看到用 JS 中的 1 行代码编写的相同代码后,我尝试使用 Java 中的 Lambda 表达式来减少代码行。但我收到以下错误:

Incompatible types. Required: org.openqa.selenium.logging.LogEntries Found: void

这就是我现在拥有的。

List e =driver.manage().logs().get(LogType.BROWSER).getAll();
String s="",t ="";
if (!e.isEmpty()){
for (Object l : e)
{
t=l.toString();
if(t.contains("SyntaxError")){
s = s + t+"<BR/>";
}
else if(t.contains("EvalError")){
s = s + t+"<BR/>";
}
else if(t.contains("ReferenceError")){
s = s + t+"<BR/>";
}
else if(t.contains("RangeError")){
s = s + t+"<BR/>";
}
else if(t.contains("TypeError")){
s = s + t+"<BR/>";
}
else if(t.contains("URIError")){
s = s + t+"<BR/>";
}
}

这就是我想要达到的目标:

List<String > errorStrings = new ArrayList<>();
errorStrings.add("SyntaxError");
errorStrings.add("EvalError");
errorStrings.add("ReferenceError");
errorStrings.add("RangeError");
errorStrings.add("TypeError");
errorStrings.add("URIError");
LogEntries l = driver.manage().logs().get(LogType.BROWSER).forEach(le -> errorStrings.stream().anyMatch(er -> le.getMessage().contains(er)));

按照下面这行代码写的就是JS:

var jsErrors = Driver.Manage().Logs.GetLog(LogType.Browser).Where(x => errorStrings.Any(e => x.Message.Contains(e)));

请帮助我了解我做错了什么。

-TIA

最佳答案

您的代码是

LogEntries l = driver.manage().logs().get(LogType.BROWSER)
.forEach(le -> errorStrings.stream()
.anyMatch(er -> le.getMessage().contains(er)));

您的错误消息是

Incompatible types. Required: org.openqa.selenium.logging.LogEntries Found: void

错误消息告诉您,您的赋值语句期望您返回 LogEntries但它得到了 void 。它正在获得 void因为那是 Stream.forEach 的返回类型方法。 forEach方法用于消耗流的所有元素并且不返回任何内容。

我认为你想要做的是过滤一组日志条目并将它们变成 LogEntries对象对吗?如果是这样的话,我怀疑你想要 filter而不是forEach .

我不是 Selenium 专家,所以我无法建议您如何将 Stream<LogEntry> into a日志条目`.我假设您可以使用归约或收集操作,但最好将其作为一个单独的问题提出。

关于javascript - 这行 JS 代码与 Java 的正确等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56141216/

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