具有多个参数的java接口
我创建了一个实用程序类,它有一些检查网页元素的方法。现在是重构这些方法的时候了,这样它们就属于它们自己的类,这样我就可以传递它们了
类中方法的几个存根如下所示,但它们的参数更多:
public boolean checkElementExistsByText(String key, String text) {}
public boolean checkElementText(String key, Predicate<String> predicate) {}
public boolean checkElementText(WebElement element, Predicate<String> predicate){}
我尝试过创建以下界面:
interface CheckElementInterface {
boolean checkElement();
}
我遇到了一个问题,因为我不能在checkElement方法中处理多个参数,所以我必须将它们传递给实现该方法的每个类的构造函数
public class CheckedElementExistsByText implements CheckElementInterface{
private final WebElement element;
private final String text;
public CheckedElementExistsByText(WebElement element, String text) {
this.element = element;
this.text = text;
}
@Override
public boolean checkElement() {
}
这是最好的方法,还是有一种方法可以将多个参数传递给checkElement()方法
谢谢
# 1 楼答案
您可以创建参数化界面:
然后您可以创建实现,例如:
编辑:
参数化接口的方法提出了一个问题:如何实现具体T1、T2的接口。它需要实现中的附加功能来帮助分派“checkElement”请求。例如
和示例用法:
正如我现在看到的:checkElementMethod中不需要参数,因为CheckElementProvider可以充当工厂
以及修改后的CheckElementInterface(现在与示例中的几乎相同,只添加了类型参数):