国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java 泛型全解析

瀏覽:2日期:2022-08-26 08:17:37

泛型簡介

什么是泛型?

參化類型,數是JDK1.5的新特性。(定義泛型時使用參數可以簡單理解為形參),例如List<E>,Map<K,V> 編譯時的一種類型,此類型僅僅在編譯階段有效,運行時無效.例如List<String>在運行時String會被擦除,最終系統會認為都是Object.

為什么要使用泛型?

泛型是進行類型設計或方法定義時的一種約束規范,基于此規范可以:

提高編程時靈活性(有點抽象,后續結合實例理解)。 提高程序運行時的性能。(在編譯階段解決一些運行時需要關注的問題,例如強轉)

說明:泛型應用相對比較簡單,難點在泛型類或方法的設計上,通過這樣的設計如何對現有類進行減法設計,提高類或方法的通用性.

泛型應用類型

泛型定義時常用方式有三種(可參考List<E>,Map<K,V)等接口定義):

泛型類:class 類名<泛型,…>{} 泛型接口:interface 接口名<泛型,…>{} 泛型方法: <泛型> 方法返回值類型 方法名(形參){}

泛型類定義及應用

類泛型定義:(用于約束類中方法參數和方法返回值類型)

class Array<T>{//類泛型:類名<泛型> Object[] array=new Object[10]; public void add(T t){}//通過類泛型約束方法參數類型 public T get(int i){//通過類泛型約束方法返回值類型 return (T)array[i]; }}

泛型接口定義及應用

定義接口時指定泛型,用于約束接口方法參數類型以及方法返回值類

interface Task<Param,Result>{//思考map中的泛型Map<K,V> /** * 此方法用于執行任務 * @param arg 其類型由泛型參數Param決定 * @return 其類型由泛型參數result決定 */ Result execute(Param arg);}

泛型接口應用實踐

class ConvertTask implements Task<String,Integer>{ @Override public Integer execute(String arg) { // TODO Auto-generated method stub return Integer.parseInt(arg); }}

泛型定義及應用

泛型方法中的泛型僅僅應用于當前方法,主要應用于一些靜態方法,當然非靜態方法也可以應用。

class ObjectFactory{ /**泛型方法*/ public static <T>T newInstance(Class<T> cls){ return (T)cls.newInstance(); }}

泛型應用通配符應用

無界限定通配符

泛型無界通配符使用”?”進行表示,可以代表一種任意參數類型(實參類型)。一般應用于變量的定義。例如:Class<?> c1;

Class<?> c=Class.forName('java.util.Date');

上屆界限定通配符

泛型上屆限定符通過“<? extends 類型>”方式進行實現,主要用于方法參數或方法的返回值類型,例如:

static void doPrint(List<? extends CharSequence> list){ System.out.println(list);}

下屆限定通配符

泛型下屆限定符通過“<? super 類型>”方式進行實現,主要用于方法參數或方法的返回值類型,例如:

static void doPrint(Set<? super Integer> set){ System.out.println(list);}

泛型類型擦除實踐分析

泛型是編譯時的一種類型,在運行時無效,運行時候都會變成Object類型,例如:

ArrayList<String> list = new ArrayList<String>();list.add('A');//list.add(100);//直接不可以//通過反射將100添加到集合list.getClass().getMethod('add', Object.class).invoke(list, 100);System.out.println(list);

總結(Summary)

本小節對泛型的定義,應用場景,應用類型以及泛型的類型擦出進行了分析和實踐,希望在后續項目實踐中對泛型有一個更好的認識。

以上就是Java 泛型全解析的詳細內容,更多關于Java 泛型的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 999国内精品永久免费视频 | 亚洲一级免费毛片 | 狼人 成人 综合 亚洲 | 国内精品久久久久久久影视麻豆 | 欧美一区在线观看视频 | 90岁老太婆一级毛片 | 久热久草| 香蕉亚洲精品一区二区 | 欧美久久久久久久一区二区三区 | 日本一区二区三区在线 视频观看免费 | 狠狠综合久久久久综合 | 亚洲天堂一区 | 拍真实国产伦偷精品 | 亚洲欧美日韩精品高清 | 久久最新免费视频 | 色综合视频一区二区观看 | 欧美一级毛片无遮无挡 | 久久毛片免费看 | 国产精品久久久久久久久久久威 | 毛片直接看 | 国模午夜写真福利视频在线 | 欧美在线视频精品 | 亚洲国产精品67194成人 | 亚洲在线免费观看视频 | 国产成人亚洲精品91专区高清 | 免费人成黄页在线观看视频国产 | 一级毛片q片 | 99热久久国产综合精品久久国产 | 成年大片免费视频播放手机不卡 | 久久久久久久99久久久毒国产 | 美女黄频免费看 | 99热久久国产这里是精品 | 久久手机免费视频 | 久久91精品国产91久久小草 | 一级女性全黄久久生活片免费 | 中文字幕va一区二区三区 | 国产日韩欧美精品在线 | 亚洲精品手机在线观看 | 波多野结衣视频免费 | 国产高清亚洲 | 久久福利资源站免费观看i 久久高清精品 |