generics方法用法
我在C#中有这个代码:
private static T GetPage() where T : new() { var page = new T(); PageFactory.InitElements(Browser.Driver, page); return page; } public static AboutPage About { get { return GetPage(); } }
我试图在Java中实现这一点,因为我非常喜欢这个概念,但我对generics(尤其是c#)并不擅长。 那么,这是我的代码:
private static T getPage(Class cls) throws Exception{ T page = cls.newInstance(); PageFactory.initElements(driver, page); return page; } public static LoginPage Login() { return LoginPage.getPage(); }
它根本不起作用。 我觉得我缺少基础知识,所以我非常感谢任何帮助或建议。
试试这个:
private static T getPage(Supplier extends T> supp) { T page = supp.get(); PageFactory.initElements(driver, page); return page; } public static LoginPage Login() { return getPage(LoginPage::new); // Passing the default constructor }
在这里,我将T
的实例化从Class
转移到Supplier
实例化,因为它不会抛出exception。
如果您没有Java 8,则必须使用您的代码,并调用如下:
getPage(LoginPage.class);
但这也意味着必须处理例外情况。
上述就是C#学习教程:generics方法用法分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/985186.html