如何定义在Java和Selenium中使用泛型类名的泛型函数

如何定义在Java和Selenium中使用泛型类名的泛型函数,java,selenium,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); WebElem

我有以下方法:

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;
}
publicstaticwebelement getElement(字符串元素,WebDriver驱动程序){
类类型=LoginPage.Class;
java.lang.reflect.Field=types.getDeclaredField(元素);
字段。setAccessible(true);
WebElement WebElement=(WebElement)字段.get(element);
返回webElement;
}
我们正在使用LoginPage类。 getDeclaredField和field.get(元素)方法将返回 在LoginPage.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;
}

只需在方法中添加一个参数
类类型
。你到底坚持什么?它是怎么工作的?你的意思是Class types=types.Class;如果你要找这么多麻烦,可能想看看Geb。页面对象模型可能会为您完成所有这一切,还有更多。在示例调用中,是否可以直接获取类名?实际上有几个类,所以每次我都要提供类名来创建一个call@user3640657我不知道你“直接”获取类名是什么意思。例如:WebElement e=getElement(“elementName”,driver,.class)@user3640657这是无效语法,我不知道您在演示什么。示例调用:WebElement e=getElement(“elementName”,driver,LoginPage.class),因此,我们只能通过LoginPage.class。如果我有100个类,我每次都要接触代码,那么我如何进行参数化呢
WebElement e = getElement("elementName", driver, LoginPage.class);