我想链接BiFunctions,就像chainWanted下面的代码示例中的方法一样.
BiFunction将Function作为AndThen的参数.有可能以某种方式链接BiFunctions?
这里的代码因为这个而无法编译,我无法将BiFunction转换为Function.
import java.util.function.BiFunction;
import java.util.function.Function;
import org.openqa.selenium.remote.RemoteWebDriver;
public class Wf {
BiFunction<RemoteWebDriver, WfParams, RemoteWebDriver> init = this::init;
BiFunction<RemoteWebDriver, WfParams, RemoteWebDriver> wait = this::wait;
BiFunction<RemoteWebDriver, WfParams, RemoteWebDriver> chainNow = init
.andThen(d -> {
System.out.println("--------------");
return null;
});
BiFunction<RemoteWebDriver, WfParams, RemoteWebDriver> chainWanted = init
.andThen((BiFunction) wait);
public RemoteWebDriver init(RemoteWebDriver d, WfParams params) {
System.out.println("init(d, params)");
return d;
}
public RemoteWebDriver wait(RemoteWebDriver d, WfParams params) {
System.out.println("Wf.wait(d, params)");
return d;
}
public static void main(String[] args) throws Exception { …Run Code Online (Sandbox Code Playgroud) 我有一个非常复杂的网站,我知道某处alert()有一个描述.有没有办法在alert()通话中设置断点?生成HTML,所以我不能只是grep的消息.
protected static String paramsAsString(Object[] args) {
return Arrays.stream(args).map((o) -> o != null && o.getClass().isArray() ? ArrayUtils.toString(o) : o)
.collect(Collectors.toList()).toString();
}
Run Code Online (Sandbox Code Playgroud)
单元测试
public void paramsAsString() throws Exception {
String[] strings = {"1" , "2"};
int[] ints = {3,4};
int[] intsEmpty = {3,4};
Object[] args = {"aaa" ,"zzz" , ints , strings, intsEmpty, null};
String paramsAsString = paramsAsString(args);
assertEquals("[aaa, zzz, {3,4}, {1,2}, {3,4}, null]", paramsAsString);
}
Run Code Online (Sandbox Code Playgroud)
我只是在学习流API.我想知道有没有办法简化这个流表达式并删除复杂的if?
如果我将null作为参数传递给@NotNull注释,是否有任何框架可以抛出异常?我不是指静态分析而是运行时检查.
如果没有,如何实施呢?