Maison  >  Article  >  Java  >  Limites génériques Java et leur rôle

Limites génériques Java et leur rôle

王林
王林original
2024-04-12 21:48:021186parcourir

Les limites génériques Java spécifient des contraintes sur les paramètres de type, garantissant que seuls les types qui satisfont à ces contraintes peuvent être utilisés. Il existe deux types de limites génériques : les limites supérieures (extends) et les limites inférieures (super). Une limite supérieure nécessite que le paramètre de type soit une sous-classe du type spécifié, tandis qu'une limite inférieure nécessite que le paramètre de type soit une superclasse du type spécifié. Les limites génériques améliorent la sécurité des types, les performances et la lisibilité du code.

Java 泛型边界与它的作用

Bordure des génériques Java et son rôle

Vue d'ensemble

Les génériques sont une fonctionnalité puissante de Java qui nous permet de créer des classes et des méthodes qui fonctionnent avec différents types de données. Les limites génériques nous permettent de spécifier des contraintes sur les paramètres de type, garantissant que seuls les types qui satisfont à ces contraintes peuvent être utilisés.

Types de limites génériques

Java fournit deux types de limites génériques :

  • Limites supérieures (étend) : Le paramètre de type doit être une sous-classe du type spécifié ou lui-même.
  • Bord inférieur (super) : Le paramètre de type doit être une superclasse du type spécifié ou lui-même.

Utilisation de limites génériques

Lors de l'utilisation de limites génériques, nous spécifierons les limites dans la déclaration générique :

<T extends Number> // 上限边界

Le mot-clé extends signifie que T doit être un sous-classe de la classe Number ou Number elle-même. extends 关键字表示 T 必须是 Number 类的子类或 Number 本身。

<? super String> // 下限边界

super 关键字表示 T 必须是 String 类的超类或 String 本身。

实战案例

让我们创建一个 LinkedList 来存储数字,并使用上限边界来确保列表中只包含 Number 类型:

import java.util.LinkedList;

class NumberList<T extends Number> {
    private LinkedList<T> numbers;

    public NumberList() {
        numbers = new LinkedList<>();
    }

    public void add(T number) {
        numbers.add(number);
    }

    public T get(int index) {
        return numbers.get(index);
    }
}

在这个例子中,T 被限制为 Number 的子类,这意味着我们只能添加和检索 Number 及其子类(如 IntegerDoublerrreee

Le mot-clé super signifie que T doit être une superclasse de la classe String ou de String elle-même.

Cas pratique

Créons une LinkedList pour stocker des nombres et utilisons une limite supérieure pour garantir que la liste ne contient que Number Tapez :
    rrreee
  • Dans cet exemple , T est limité à une sous-classe de Number, ce qui signifie que nous pouvons uniquement ajouter et récupérer Number et ses sous-classes (telles que Integer et Double).
  • Avantages
L'utilisation de limites génériques présente les avantages suivants : 🎜🎜🎜Sécurité améliorée des types : elle permet d'éviter que des types incorrects ne soient transmis à des classes ou méthodes génériques. 🎜🎜Performances améliorées : le compilateur peut effectuer de meilleures optimisations car il connaît les contraintes d'un type spécifique. 🎜🎜Amélioration de la lisibilité du code : les limites génériques rendent le code plus facile à comprendre car elles spécifient clairement les types de données acceptables. 🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn