簡體   English   中英

在Java中返回通用類型

[英]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.

我在哪里犯錯?

由於在運行時進行類型擦除 ,因此Tjava.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM