40_自定義泛型方法及其應用

java的泛型不同于C++的模板方法那么強大。java的泛型只停留在編譯階段,編譯通過后泛型特征被擦除,主要因為保證jvm的效率。

image

?

  • 用泛型知識,寫一個交換數組元素的方法(此方法只適合于引用類型數組!因為int[]不會自動轉為Integer[]!)

?

private static <T> void swap(T[] a,int i,int j){ T tmp=a[i]; a[i]=a[j]; a[j]=tmp; 
}String[] arr=new String[]{"123","789","456"}; 
//打印出123789456 
for(String s:arr){ System.out.print(s); 
} 
swap(arr,1,2); 
System.out.println(); 
//打印出123456789 
for(String s:arr){ System.out.print(s); 
}

?

注意:

  1. <T>的位置---方法返回值之前

SNAGHTML33f6cf8

2.? T[]可以接收的實參類型---引用類型

若基本類型數組,會報錯。如 swap(new int[3],1,2); 會報錯!

?

?

普通方法,構造方法,靜態方法中都可以使用泛型。

也可以用類型變量表示異常,稱為參數化的異常,可以用于方法的throws列表中,但是不能用于catch子句中。

private static <T extends Exception> sayHello()throws T{try{}catch(Exception e){throw (T)e;}}

補充反射:

String[] arr=new String[]{"123","789","456"}; 
System.out.println(arr.getClass().getName());//[Ljava.lang.String; 
System.out.println("abc".getClass().getName());//java.lang.Stringint[] arr2=new int[]{1,3,2}; 
System.out.println(arr2.getClass().getName());//[I 
System.out.println(int.class.getName());//int

Integer[] arr3=new Integer[]{1,3,2}; 
System.out.println(arr3.getClass().getName());//[Ljava.lang.Integer; 
System.out.println(Integer.class.getName());//java.lang.Integer

轉載于:https://www.cnblogs.com/qq-757617012/p/4271863.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257668.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257668.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257668.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL Server代理(11/12):維護計劃作業

SQL Server代理是所有實時數據庫的核心。代理有很多不明顯的用法&#xff0c;因此系統的知識&#xff0c;對于開發人員還是DBA都是有用的。這系列文章會通俗介紹它的很多用法。 在這一系列的上一篇&#xff0c;我們看了使用代理帳戶模仿Windows安全上下文完成作業步驟的工作。大…

mysql select array_從數據庫select查詢出來的數組

PHP中提供了array_unique函數去除一維數組中的重復項&#xff0c;但是我們實際的項目開發中&#xff0c;從數據庫select查詢出來的數組經常是二維的&#xff1b;這里面可能有重復項&#xff0c;這就需要我們自己定義函數進行去除重復項。思路&#xff1a;1、首先獲取第二維數組…

shell中字分隔的妙用:變量IFS

shell把每個 $IFS 字符對待成一個分隔符&#xff0c;且基于這些字符把其他擴展的結果分割。如果 IFS 未設置&#xff0c;或者它的值正好是 “‘<space><tab><newline>’”&#xff0c;那么任何IFS 字符的序列就送往分割字。自寫一個簡單的腳本&#xff1a;#!…

老子《道德經》第三十五章

上士聞道&#xff0c;勤而行之&#xff1b;中士聞道&#xff0c;若存若亡&#xff1b;下士聞道&#xff0c;大笑之。 不笑不足以為道。 故建言有之&#xff1a;明道若昧&#xff0c;進道若退&#xff0c;夷道若颣。 上德若谷&#xff0c;大白若辱&#xff0c;廣德若不足&#x…

php 通過類名獲取類的文件地址

$reflector new ReflectionClass("Child"); $fn $reflector->getFileName(); return dirname($fn);轉載于:https://www.cnblogs.com/bushe/p/5215718.html

大數據告訴你,電商都把假貨發給誰?

“看人下刀”&#xff0c;電商玩得更科幻 內幕&#xff1a;你在網上買件大牌化妝品&#xff0c;在訂單提交→發貨之前&#xff0c;系統會查詢分析你在全平臺的購物數據(大數據內部共享)&#xff1a;購買均價&#xff0c;常購品牌&#xff0c;退貨率。 如果你同類產品消費傾向絕…

mysql取得列類型_Mysql列類型

數值型整型&#xff1a;tinyint:微小的列類型&#xff0c;1個字節&#xff0c;默認有符號&#xff0c;存儲范圍&#xff1a;-128--127可選屬性&#xff1a;tingyint(M) unsigned zerofillM:寬度(在0填充(zerofill)時才有效),只是顯示效果&#xff0c;不影響實際數據的存儲范圍;…

XtraBackup全備與增量備份

一、XtraBackup安裝 下載地址&#xff1a;http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.8/source/ 安裝步驟&#xff1a; How to build XtraBackup on Linux Prerequisites -------------$ yum install cmake gcc gcc-c libaio libaio-devel automake autocon…

《大話設計模式》 國外資料

It is not easy to remember all design patterns. Here are some stories about design patterns which might help! Creational Singleton – Only one president in AmericaFactory – A factory that produces humanAbstract Factory – An abstract factory to produce CP…

DHCP基本配置

第一步 安裝 DHCP [rootlocalhost ~]# yum install dhcp dhcp-devel DHCP文件簡介 /etc/dhcp/dhcpd.conf #主配置文件&#xff0c;除了括號那欄&#xff0c;其它都要結尾 ; 這樣的分號 /var/lib/dhcpd/dhcpd.leases #IP地址租約在這里 第二步 配置 DHCP 主文件配置[rootlocalho…

python arcgis 圖書_arcgis python

本書作者是GIS發方面的知名作者&#xff0c;曾著有《JavaScript構建Web和ArcGIS Server應用實戰》(Building Web and Mobile ArcGIS Server Applications with JavaScript)一書。 本書內容易學易懂&#xff0c;幫助讀者成為GIS發高手。《面向ArcGIS的Python腳本編程》是一本指導…

scrapy 讓指定的spider執行指定的pipeline

處理scrapy中包括多個pipeline時如何讓spider執行制定的pipeline管道&#xff11;:創建一個裝飾器from scrapy.exceptions import DropItemimport functools當有多個pipeline時,判斷spider如何執行指定的管道 def check_spider_pipeline(process_item_method): functools.wr…

五大常用算法之三:貪心算法

一、基本概念&#xff1a; 所謂貪心算法是指&#xff0c;在對問題求解時&#xff0c;總是做出在當前看來是最好的選擇。也就是說&#xff0c;不從整體最優上加以考慮&#xff0c;他所做出的僅是在某種意義上的局部最優解。 貪心算法沒有固定的算法框架&#xff0c;算法設計的關…

python學習筆記列表和元組(三)

列表&#xff08;list&#xff09;是Python以及其他語言中最常用到的數據結構之一。Python使用使用中括號 [ ] 來解析列表。列表是可變的&#xff08;mutable&#xff09;——可以改變列表的內容。對應操作&#xff1a;1、查&#xff08;[]切片操作&#xff09; name [tom,張三…

python 函數的調用的時候參數的傳遞_Python Unittest;如何獲取調用函數時傳遞的參數?...

我試圖做一個單元測試來檢查這個python函數(dispatch)是否傳遞了正確的參數來處理\u結果。在在dispatch中調用處理“unu result”的函數時&#xff0c;有沒有方法“劫持”輸入參數&#xff1f;我沒有在調度函數中修改代碼的權限。在以下是單元測試中的want預覽&#xff1a;impo…

博客園客戶端UAP開發隨筆 -- App連接云端內容的橋梁:WebView

當你辛苦的從網上爬下來一篇文章之后&#xff0c;怎么在你的應用內展示這些包含HTML標記的文章&#xff1f;如果你使用的是Javascript開發應用&#xff0c;恭喜你&#xff0c;直接塞進頁面就可以了&#xff0c;同時說明你很熟悉頁面開發&#xff0c;而現在windows也支持這種方式…

listview與gridview點擊時的背景色取消

在布局文件里面的listview控件添加以下代碼android:listSelector"#00000000" //透明色 可以自己選擇點擊顏色轉載于:https://www.cnblogs.com/yulook/p/5219932.html

解決yum命令失效,vim: command not found

安裝python3模塊時&#xff0c;yum命令無法執行錯誤:**/usr/bin/yum: line 3: import: command not found/usr/bin/yum: line 4: try:: command not found/usr/bin/yum: line 5: import: command not found/usr/bin/yum: line 6: except: command not found/usr/bin/yum: line …

C4.5

C4.5是機器學習算法中的另一個分類決策樹算法&#xff0c;它是基于ID3算法進行改進后的一種重要算法&#xff0c;相比于ID3算法&#xff0c;改進有如下幾個要點&#xff1a; 用信息增益率來選擇屬性。ID3選擇屬性用的是子樹的信息增益&#xff0c;這里可以用很多方法來定義信息…

(周日賽)Sort the Array

題意&#xff1a;一段數字&#xff0c;逆置其中兩個使其遞增 DescriptionBeing a programmer, you like arrays a lot. For your birthday, your friends have given you an array a consisting of ndistinct integers. Unfortunately, the size of a is too small. You want a…