J'ai réussi à utiliser les génériques que je connais dans les listes et les cartes, mais je vais laisser quelques points à garder à l'esprit car cela peut être vague lors de l'utilisation de génériques pour mes propres classes.
Generics.java
package generics;
import java.util.ArrayList;
import java.util.List;
public class Generics {
public static void main(String[] args) {
Bean<String> beanForStr1 = new Bean<String>();
beanForStr1.setValue("Chaîne");
System.out.println(beanForStr1.getValue());
Bean<Integer> beanForInt1 = new Bean<Integer>();
beanForInt1.setValue(1000);
System.out.println(beanForInt1.getValue());
ExpandBean<Integer> beanForInt2 = new ExpandBean<Integer>();
beanForInt2.setValue(1000);
System.out.println(beanForInt2.getValue());
System.out.println(getAnyBean(beanForStr1).get(0).getValue());
System.out.println(getAnyBean(beanForInt1).get(0).getValue());
System.out.println(getAnyBean(beanForInt2).get(0).getValue());
}
/**
*Méthode générique
*/
public static <T> List<T> getAnyBean(T args){
List<T> list = new ArrayList<T>();
list.add(args);
return list;
}
}
Bean.java
/**
*Classe génériques
*/
public class Bean<T> {
private T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
ExpandBean.java
package generics;
/**
*Classe génériques
*Vous pouvez spécifier (restreindre) comme "une classe qui hérite de la classe Number"
*/
public class ExpandBean<T extends Number> {
private T value;
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
}
Il est utile de se rappeler de créer la partie de base et d'organiser les processus communs. La classe générique est maladive, mais le point d'écrire les génériques juste avant de spécifier la valeur de retour de la méthode générique n'est pas maladif.
A bientôt (^_^) Noshi
Recommended Posts