Le rôle des génériques et la différence avec Object

Avant Java SE 1.5, en l'absence de génériques, le paramètre "arbitraire" était réalisé par référence au type Object. L'inconvénient de "arbitraire" était de faire une conversion de type obligatoire explicite , et cela La conversion est requise lorsque le développeur peut prédire le type de paramètre réel . Dans le cas d' erreurs de conversion de type forcées , le compilateur peut ne pas inviter l'erreur et l'exception se produit uniquement lors de l'exécution, ce qui représente un risque pour la sécurité.

public  class Gen <T> {  
     private T ob; // Définir les variables membres génériques   
  
    public Gen (T ob) {  
         this .ob = ob;   
    }   
  
    public T getOb () {  
         return ob;   
    }   
  
    public  void setOb (T ob) {  
         this .ob = ob;   
    }   
  
    public  void showType () {   
        System.out.println ( "Le type réel de T est:" + ob.getClass (). getName ());   
    }   
}  
 classe publique GenDemo {  
     public  static  void main (String [] args) {  
         // Définissez une version Integer de la classe générique Gen   
        Gen <Integer> intOb = new Gen <Integer> (88 );   
        intOb.showType ();   
        int i = intOb.getOb ();   
        System.out.println ( "value =" + i);   
        System.out.println ( "----------------------- ----------- " );  
         // Définir une version String de la classe générique Gen   
        Gen <String> strOb = new Gen <String> (" Hello Gen! " );   
        StrOb.showType ();  
        String s  =strOb.getOb ();  
        System.out.println ( "value =" + s);  
    }   
}  

 

 

 

 

En un mot
, l'avantage des génériques est que la sécurité des types est vérifiée au moment de la compilation , et toute contrainte est automatique et implicite , ce qui améliore le taux de réutilisation du code et n'a pas à être forcé comme Object.

 

Je suppose que tu aimes

Origine www.cnblogs.com/xiaoxiong2015/p/12705815.html
conseillé
Classement