public class B extends C <A> {
}
What does this mean? That C needs to extend A? What extra restriction am I putting instead of just saying B extends C?
6 Réponses :
Merci. Pouvez-vous s'il vous plaît élaborer un peu ce que vous entendez par "avoir un paramètre de type"?
J'ai mis à jour ma réponse @victor, par type, je veux dire que vous pouvez utiliser ce type dans votre classe générique.
Classe Un cas d'utilisation classique pour cela serait que vous avez une DAO (objet d'accès aux données). Vous faites une DAO générique avec des méthodes de base, telles que alors vous avez B code> est un C code>. p>
C code> et B code> sont paramétrés avec un A code>. (Ce qui signifie qu'ils peuvent avoir des méthodes et telles que l'utilisation a code> méthodes ou les méthodes de classes qui descendent de a.) P>
genericdao code> avec une méthode générique Enregistrer code>. Pour ce faire, d'autres daos peuvent prolonger genericdao code>, vous paramètreez cette classe avec code> entité code>, et assurez-vous que toutes vos entités code> sont enregistrées. < / p>
genericdao userDao étend généricdao
Dans ce cas, Par exemple, supposons: P> C code> est une classe qui peut prendre un paramètre générique et vous lui donnez un type spécifique A code> comme paramètre. Ensuite, B code> étend ce paramétrage spécifique de C code>. class C<T> {
T example();
}
class B extends C<Integer> {
}
L'exemple actuel n'explique aucun avantage d'avoir Classe B Code> sur C Integer code> - comportement spécifique dans B code>.
Vous définissez une classe B qui hérite de la classe C, paramétré par type A. A doit être une classe ou une interface.
E.g. p> signifie que En raison de cette héritage, vous pourrez attribuer une instance à une liste mais vous ne pourrez pas l'affecter à mystring code> est un code> arrayliste code> contenant uniquement des éléments code> (code>. Cette classe pourrait alors définir par ex. un concaténate () code> méthode qui renvoie la concaténation de toutes les chaînes code> code> dans la liste. p> list list code> type variables de type avec d'autres paramètres: p>
java.util.list code> est une interface au cas où vous voulez corriger cela.
Cela ne veut rien dire, sauf s'il y a des méthodes Ce faisant, vous garantissez la sécurité forte> la sécurité forte> en imposant des restrictions disant classe C code> ou ses ascendants forts> forts>, à
public class B extends C <A> {
}
If A is undefined there is no restriction on B( can be any the of Object Class).
If the Type of A is defined,then B must be of type A or a Subclass of A.