您好,登錄后才能下訂單哦!
這篇文章主要講解了“java如何使用ParameterizedType實現泛型”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“java如何使用ParameterizedType實現泛型”吧!
1、過程
(1)測試屬性類型
(2)打印type與generic type的區別
(3)測試參數類型
(4)測試返回值類型
2、實例
public class Client { private Map<String, Object> objectMap; public void test(Map<String, User> map, String string) { } public Map<User, Bean> test() { return null; } /** * 測試屬性類型 * * @throws NoSuchFieldException */ @Test public void testFieldType() throws NoSuchFieldException { Field field = Client.class.getDeclaredField("objectMap"); Type gType = field.getGenericType(); // 打印type與generic type的區別 System.out.println(field.getType()); System.out.println(gType); System.out.println("**************"); if (gType instanceof ParameterizedType) { ParameterizedType pType = (ParameterizedType) gType; Type[] types = pType.getActualTypeArguments(); for (Type type : types) { System.out.println(type.toString()); } } } /** * 測試參數類型 * * @throws NoSuchMethodException */ @Test public void testParamType() throws NoSuchMethodException { Method testMethod = Client.class.getMethod("test", Map.class, String.class); Type[] parameterTypes = testMethod.getGenericParameterTypes(); for (Type type : parameterTypes) { System.out.println("type -> " + type); if (type instanceof ParameterizedType) { Type[] actualTypes = ((ParameterizedType) type).getActualTypeArguments(); for (Type actualType : actualTypes) { System.out.println("\tactual type -> " + actualType); } } } } /** * 測試返回值類型 * * @throws NoSuchMethodException */ @Test public void testReturnType() throws NoSuchMethodException { Method testMethod = Client.class.getMethod("test"); Type returnType = testMethod.getGenericReturnType(); System.out.println("return type -> " + returnType); if (returnType instanceof ParameterizedType) { Type[] actualTypes = ((ParameterizedType) returnType).getActualTypeArguments(); for (Type actualType : actualTypes) { System.out.println("\tactual type -> " + actualType); } } } }
感謝各位的閱讀,以上就是“java如何使用ParameterizedType實現泛型”的內容了,經過本文的學習后,相信大家對java如何使用ParameterizedType實現泛型這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。