[英]Return Generic Type In Java
我是java的新手,正在嘗試實現一個通用方法:
public static <T> T login(String username,String password)
{
//...
return PageFactory.initElements(driver,T.class);
}
在這里,我想傳遞泛型類型類,但是當我嘗試T.class
時,出現了錯誤:
Cannot select from a type variable.
我在哪里犯錯?
由於在運行時進行類型擦除 ,因此T
為java.lang.Object
因此這不是一個選擇。 如果有一個T
實例要在其上調用getClass()
public static <T> T login(String username,String password, T obj) {
// to get the class at run-time.
return PageFactory.initElements(driver,obj.getClass());
}
或者正如其他人已經指出的那樣,您可以使用
public static <T> T login(String username,String password, Class<T> cls) {
// to use the Class, passed from caller.
return PageFactory.initElements(driver,cls);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.