Je suis à la recherche à un certain GXT code GWT et j'ai couru à travers cette utilisation de médicaments Génériques que je ne peux pas trouver un autre exemple de Java tutoriels. Le nom de la classe est - com.extjs.gxt.ui.client.data.BaseModelData
si vous voulez regarder tous les code. Voici les principaux:
private RpcMap map;
public <X> X get(String property) {
if (allowNestedValues && NestedModelUtil.isNestedProperty(property)) {
return (X)NestedModelUtil.getNestedValue(this, property);
}
return map == null ? null : (X) map.get(property);
}
X
est défini nulle part ailleurs dans la classe ou n'importe où dans la hiérarchie, et quand j'appuie sur "aller à la déclaration" dans eclipse, il va juste à l' <X>
dans le public signature de la méthode.
J'ai essayé d'appeler cette méthode avec les deux exemples suivants pour voir ce qui se passe:
public Date getExpiredate() {
return get("expiredate");
}
public String getSubject() {
return get("subject");
}
Ils compilent et ne montrent aucun des erreurs ou des avertissements. Je pense que au moins j'aurais à faire un moulage pour obtenir que cela fonctionne.
Est-ce à dire que les Génériques permettent de la magie la valeur de retour qui peut être n'importe quoi et tout faire exploser au moment de l'exécution? Cela semble contraire à ce que les génériques sont censés faire. Quelqu'un peut-il m'expliquer cela et éventuellement me donner un lien vers une partie de la documentation qui explique un peu mieux? J'ai passé par le Soleil du 23 page pdf sur les médicaments génériques et chaque exemple de valeur de retour est définie au niveau de la classe ou dans l'un des paramètres passés dans.