如何定义一个泛型函数,该函数在Java和Selenium中使用泛型类名

时间:2017-01-09 03:04:10

标签: java selenium

我有以下方法:

public static WebElement getElement(String element, WebDriver driver){

    Class<LoginPage> types=LoginPage.class;     
    java.lang.reflect.Field field=types.getDeclaredField(element);   
    field.setAccessible(true);   
    WebElement webelement=(WebElement)field.get(element); 
    return webElement;
}

以下是使用LoginPage类。 getDeclaredField和field.get(element)方法将返回给我 LoginPage.class中定义的字段。 我们如何定义一个泛型的Class方法,它可以采用任何类型的ClassName?

1 个答案:

答案 0 :(得分:1)

只需将Class变量设为方法参数:

public static WebElement getElement(String element, WebDriver driver, Class<?> clazz){
    java.lang.reflect.Field field=clazz.getDeclaredField(element);   
    field.setAccessible(true);   
    WebElement webelement=(WebElement)field.get(element); 
    return webElement;
}

示例电话:

WebElement e = getElement("elementName", driver, LoginPage.class);