我正在将最初用C#编写的库重写为Java,并尽我所能尽可能地遵循它。但是,这让我感到难过。
这是我想在Java中重新创建的C#方法
public T With<TV>(Func<T, IEditable> func, TV value)
{
var pageElement = func(TypedThis);
pageActions.Add(new WebDriverValuePageAction<TV>(pageElement, value));
return TypedThis;
}
这是一个通用方法,用作Selenium Page Object框架的一部分,其中T是BasePage,并且该方法接受继承IEditable接口的任何页面元素。
困扰我的是方法的With<TV>
部分以及如何在Java中重新创建它。其他一切都差不多了。我已经能够重新创建 T ,但是无法弄清楚如何随功能一起传递电视(本质上是通用值)。
答案 0 :(得分:3)
直接等效项为
public <TV> T With(Function<T, IEditable> func, TV value)
{
IEditable pageElement = func.apply(TypedThis);
pageActions.Add(new WebDriverValuePageAction<TV>(pageElement, value));
return TypedThis;
}