Qu'est-ce Titulaire<> faire en Java?
Quelqu'un peut-il m'expliquer ce code?
public void getSupplierByZipCode(
@WebParam(name = "zip", targetNamespace = "http://www.webservicex.net/")
String zip,
@WebParam(name = "GetSupplierByZipCodeResult", targetNamespace = "http://www.webservicex.net/", mode = WebParam.Mode.OUT)
Holder<Boolean> getSupplierByZipCodeResult,
@WebParam(name = "SupplierDataLists", targetNamespace = "http://www.webservicex.net/", mode = WebParam.Mode.OUT)
Holder<SupplierDataList> supplierDataLists);
Je n'ai jamais vu Holder
avant en Java. Quelles sont Holder<Boolean>
et Holder<SupplierDataList>
dans la fonction? Sont-ils comme les sorties?? J'ai besoin de le fournisseur de la liste de données à partir de cette fonction.
Vous devez vous connecter pour publier un commentaire.
Voir Titulaire - L'objectif est de "tenir la valeur" tout en permettant des effets secondaires des modifications de lui-même (et donc changer la valeur, il "tient").
La variable d'instance (
value
) représentant le contenu de/"tenu" la valeur peut être réaffectés, ce qui est utilisé pour faciliter la façon de [plusieurs] les valeurs sont "retournés" dans le WS - par modification explicite des détenteurs fournies en tant que paramètres. (Notez l'utilisation deWebParam.Mode.OUT
ainsi.)Cette "couche supplémentaire" est nécessaire parce que Java est toujours Appel Par Valeur; le Titulaire alors effectivement faux un pointeur d'indirection (appelons-la "référence-indirection"), comme ce qui pourrait être fait en C, ce qui conduit à Appel Par (Objet) Partager sémantique.
Imaginer:
Depuis les chaînes sont immuables et le zip est pas enveloppé dans un support puis le code postal ne peut pas être changé (ou "retourné" par l') le WS appel.
Voir aussi:
result
variable. Fournir unHolder<SupplierDataList>
(car ce n'est qu'un paramètre de SORTIE, pas de titulaire valeur doit être fournie), qui peut être modifié afin de "retour" d'une valeur dans le WS méthode. Ensuite, utilisez lavalue
après l'appel.