java獲取泛型class
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
很多朋友都想知道java怎麼獲取泛型class?下面就一起來了解一下吧~
獲取泛型Class的方法
Class類的方法:
public Type getGenericSuperclass()
方法作用:
如果超類是參數化類型,則返回的 Type 對象必須準確反映源代碼中所使用的實際類型參數。如果以前未曾創建表示超類的參數化類型,則創建這個類型。有關參數化類型創建過程的語義,請參閱 ParameterizedType 聲明。如果此 Class 表示 Object 類、接口、基本類型或 void,則返回 null。如果此對象表示一個數組類,則返回表示 Object 類的 Class 對象。
ParameterizedType類的方法:
Type[] getActualTypeArguments()
方法作用:返回表示此類型實際類型參數的 Type 對象的數組。
注意,在某些情況下,返回的數組爲空。如果此類型表示嵌套在參數化類型中的非參數化類型,則會發生這種情況。
二、獲取泛型Class對象
(解析Excel的類代碼較多,這裏定義幾個簡單的類記錄)
定義獲取泛型Class對象的工具類
GenericSuperclassUtil
import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;public class GenericSuperclassUtil {/** 獲取泛型類Class對象,不是泛型類則返回null*/public static Class<?> getActualTypeArgument(Class<?> clazz) {Class<?> entitiClass = null;Type genericSuperclass = clazz.getGenericSuperclass();if (genericSuperclass instanceof ParameterizedType) {Type[] actualTypeArguments = ((ParameterizedType) genericSuperclass).getActualTypeArguments();if (actualTypeArguments != null && actualTypeArguments.length > 0) {entitiClass = (Class<?>) actualTypeArguments[0];}}return entitiClass;}}
定義BaseService<E>,用來測試不使用父類時泛型Class的獲取
BaseService<E>
public class BaseService<E> {public Class<?> getEntityClass() {return GenericSuperclassUtil.getActualTypeArgument(this.getClass());}}
測試BaseService.getEntityClass()
@Testpublic void testBaseService() {System.out.println(new BaseService<User>().getEntityClass());// 控制檯輸出:null}
-
微博怎麼顯示手機型號,微博如何顯示手機型號
微博怎麼顯示手機型號:1、首先需要點擊手機桌面中的微博。2、然後再點擊屏幕右下方的我的。3、然後再點擊屏幕上方的設置圖標。4、然後再點擊會員專屬設置。5、然後再點擊微博來源。6、最後選擇想要顯示的手機型號就可以了。...
-
美圖秀秀手機怎麼縮小圖片大小
美圖秀秀是一款很受歡迎的修圖軟件,很多人都喜歡用美圖秀秀來對圖片進行處理,但美圖秀秀不能對圖片的大小進行隨意修改,那麼,手機美圖秀秀要怎麼縮小圖片呢?首先我們將手機美圖秀秀打開,在首頁點擊【圖片美化】功能按鈕,然後可以打開選擇相冊界面,找到需要修改的圖片,點...
-
如何在b站獲得硬幣
1、首先我們需要有b站的會員賬號(如果沒有請自行百度如何成爲會員)。然後打開網頁,登錄。隨意點開一個視頻都會有廣告。點擊廣告可以賺取硬幣(但這個靠人品,不一定有。一般可獲得0~0.3個硬幣)2、這個是最普通的方法,就是你每天登錄,就會獲得一個硬幣的獎勵。(還有如果你...
-
微信怎麼建
1、微信的創建方法:打開微信。點擊更多。選擇註冊。輸入暱稱,手機號和密碼。勾選同意協議。點擊註冊即可。2、微信推薦使用手機號註冊,並支持100餘個國家的手機號。微信不可以通過QQ號直接登錄註冊或者通過郵箱帳號註冊。第一次使用QQ號登陸時,是登陸不了的,只能用...