溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java泛型變量添加約束的方法

發(fā)布時(shí)間:2020-07-29 10:43:44 來(lái)源:億速云 閱讀:184 作者:小豬 欄目:編程語(yǔ)言

這篇文章主要講解了Java泛型變量添加約束的方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

有時(shí),類或方法需要對(duì)類型變量加以約束。下面是一個(gè)典型的例子,我們要尋找數(shù)組中的最小元素:

public class ArrayAlg {
  public static <T extends Comparable> T min(T[] array){
    if (array == null || array.length == 0){
      return null;
    }
    T smallest = array[0];
    for (int i=0;i<array.length;i++){
      if (smallest.compareTo(array[i])>0){
        smallest = array[i];
      }
    }
    return smallest;
  }
}

上述代碼中的限制了用于實(shí)例化類型參數(shù)T的類型,必須是實(shí)現(xiàn)Comparable接口(只含有compareTo方法的標(biāo)準(zhǔn)接口)的類。如果沒有對(duì)T進(jìn)行限制,那么無(wú)法確保實(shí)例化T的類型具有compareTo方法。

note

一個(gè)類型變量可以有多個(gè)限定,例如:

<T extends Comparable & Serializable , U extends Comparable>

限定類型使用 “&”分隔,而“,”用于分隔類型參數(shù)。

在Java中,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但只能有一個(gè)父類,所以在類型參數(shù)的限定中,可以有多個(gè)接口,但只能有一個(gè)類。

<T extends 接口1 & 接口2 & ... & 接口n & 類型1>

看完上述內(nèi)容,是不是對(duì)Java泛型變量添加約束的方法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI