Метод
Чтобы упростить то, что вы, вероятно, пробуете, и лучше сопоставить его, вы можете начать с вашего текущего кода, представленного как метод.Этот метод пытается найти optStarGrade
типа By
для данного strStar
, который является частью вашего XPath
, который будет выглядеть примерно так:
public static By optStarGradeFunction(String strStar) {
return By.xpath("//input[@id='" + strStar + "'");
}
, а затем вы можетесоздать механизм By
как:
By optStarGrade = findByXPath("XPath");
Анонимный класс
Аналогичное представление этого метода (или функции) будет:
Function<String, By> optStarGradeFunction = new Function<String, By>() {
@Override
public By apply(String strStar) {
return By.xpath("//input[@id='" + strStar + "'");
}
};
и затем доступен как
By optStarGrade = optStarGradeFunction.apply("XPath"); // calls the above 'apply' method
Лямбда
Но тогда Function
можно представить с помощью лямбды так же просто, как:
Function<String, By> optStarGradeFunction = strStar -> By.xpath("//input[@id='" + strStar + "'");