![](/img/trans.png)
[英]How to cast generic Class type into an another generic Class type in Java
[英]How to cast a class according to a generic type?
我正在用 Java 和 Selenium 编写自动化。我想创建一个泛型方法,根据泛型类型参数调用存在于不同子页面(类)中的方法。
是这样的:
public <T> BasePage doSomething(Class<T> pageType)
{
//Navigate to the page and gets the page
BasePage page = navigate....
//call the method according to the received class
page.xxx()
}
如何将页面设置为正确的类型并调用其方法?
您可以在此处进行多项改进,其中之一是使T
在您的方法中扩展BaseClass
,如下所示:
public <T extends BasePage> T doSomething(Class<T> pageClass) {
// nav to page
T page = ...
// call to xxx
page.xxx();
// ...somehow return page
return page;
}
这将使 function 的返回类型在您使用它的地方更加具体。 此外,您不需要在此处强制转换任何内容,因为您已经拥有“比BasePage
更具体的内容”。 然后在BasePage
中创建一个抽象方法:
abstract class BasePage {
...
// has to be implemented in the child classes.
public abstract whatever xxx(...)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.