日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java泛型用于方法,类和接口

發(fā)布時間:2024/7/19 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java泛型用于方法,类和接口 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是泛型?

  型就是數(shù)據(jù)類型參數(shù)化。就是說原本定死的數(shù)據(jù)類型像方法中的形參一樣,數(shù)據(jù)是不確定的,使用的時候由人傳進去,泛型就是這樣,數(shù)據(jù)類型不確定了。使用的時候再確定就可以了。

泛型的特點

  • 是JDK1.5的新特性
  • 泛型可以使用在方法上,類上,接口上
  • 泛型變量可以理解為是某種數(shù)據(jù)類型的占位符
  • 泛型變量也可以理解為是某種數(shù)據(jù)類型的變量
  • 泛型變量的命名規(guī)則,只要是合法的標識符就可以,一般使用一個大寫字母標識

好了,講了一點點,現(xiàn)在來看一下泛型實際運用是怎么樣的。實際上呢泛型是一個很好用的東西,例如我們都會用的ArrayList鏈表? ?ArrayList<T> 鏈表名 = new ArrayList;里面的? T? 就是泛型的使用方法,大家有興趣可以去看一下ArrayList的源代碼。

泛型在方法中的用法

  定義方法:修飾符 <T> 返回值類型 方法名(參數(shù)列表){}

  public static void main(String[] args) {
    String s = "123456";
    int i = 123456;
String str = test01(s);Integer in = test01(i);}public static <T> T test01(T param){//<T>這個是確定泛型的標識符。。后面那個T是返回值類型!!!一定要記住return param;}

  你看這樣子就可以將不同數(shù)據(jù)類型的數(shù)據(jù)傳給同一個方法,就不需要方法重寫了,減少很多工作量的說。然后注意一點,那就是泛型不能使用基本數(shù)據(jù)類型。只能使用基本數(shù)據(jù)類型的包裝類,比如ArrayList,我們放int類型時是怎么放的???ArrayList<Integer> arr = new ArrayList()<>;在建對象使用泛型時注意一下

泛型在類中的用法

  說實在的,類為什么類也要定義成泛型我也沒怎么想到,確實覺得感覺有點好處,又感覺沒什么好處。我有時間去查看一下吧。

泛型類的定義格式:

泛型類定義格式? ? class 類名<T>{? ?//可以將泛型變量T當(dāng)成一種數(shù)據(jù)類型使用? }

public class changeArr<T>{//定義泛型類public static <T> void reverse(T[] arr){//里面定義一個泛型方法for (int i = 0,j = arr.length - 1; i < j ; i++,j--) {T temp = arr[i];arr[i] = arr[j];arr[j] = temp;}} }public static void main(String[] args){Integer[] arr = {1,3,4,7,9} ;String[] strs = {"a","b","c"};     changeArr<Integer> arrays01 = new changeArr<>(); //使用泛型類創(chuàng)建,創(chuàng)建的時候指定數(shù)據(jù)類型
    arrays01.reverse(arr);//使用泛型方法
System.out.println(arrays02.toString(arr)); changeArr<String> arrays02 = new changeArr<>();arrays02.reverse(strs);System.out.println(arrays02.toString(strs));//好煩啊,為什么這個粘貼復(fù)制自己的都會格式亂掉}

  emmmm,因為這個用的比較少,所有感覺沒有什么要注意的。。。

泛型定義接口

  這個有老哥和我說很重要,我感受了一下,確實很重要的說!!!

  泛型接口的定義格式? interface 接口<T>{ //在接口中可以把T當(dāng)成一種數(shù)據(jù)類型使用 }

  泛型接口的實現(xiàn)方式
  方式1:實現(xiàn)接口的同時指定泛型變量的具體數(shù)據(jù)類型
  方式2:實現(xiàn)接口時不指定泛型變量的具體數(shù)據(jù)類型,將實現(xiàn)類定義為泛型類,由創(chuàng)建實現(xiàn)類對象者指定泛型變量的具體數(shù)據(jù)類型//為什么說重要的原因,就是這個!!!

特地說多一點,因為實際操作中我們會遇到很多東西,但其實有一些東西都是重復(fù)的,就比如在ssm中的超多實現(xiàn)類,其實比如通過id查找該物品什么的,每個表的實現(xiàn)定義一個,現(xiàn)在有了泛型就不用那么慘了,直接調(diào)用,反正就算是類的數(shù)據(jù)類型也可以使用,很爽的說。。。果然師兄說的對,寫接口是最痛苦的。用接口是最舒服的!!!

?

class Student{}public interface Dao<T>{//泛型接口public void save(T t);public void delete(int id);public void update(T t);public void find(int id);}//實現(xiàn)層代碼 指定實現(xiàn)類具體數(shù)據(jù)類型public class StudentDao implements Dao<Student>{//對四個類進行重寫}//實現(xiàn)層代碼 不指定實現(xiàn)類具體數(shù)據(jù)類型,比較靈活public class BaseDao<T> implements Dao<T>{//對四個類進行重寫}//main中實現(xiàn)public static void main(String[] args) {BaseDao<Student> baseDao1 = new BaseDao<>();}//格式懶的調(diào)了,大家湊合著看吧感受一下就就知道了,這個是真滴好用

  

轉(zhuǎn)載于:https://www.cnblogs.com/phoenlix/p/9439318.html

總結(jié)

以上是生活随笔為你收集整理的Java泛型用于方法,类和接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。