Was nutzt Java-6-Schnittstelle MultivaluedMap?
Wozu ist Java 6 die Schnittstelle MultivaluedMap?
- Er bittet für Szenarien, in denen diese Funktion verwendet wird.
- Ich konnte sehen, es wird selten verwendet, ich bin interessiert Anwendungsfälle ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schnittstelle nicht angehören, "Java", was bedeutet, dass die Schnittstelle nicht Teil der Kern-Bibliotheken. Es ist ein Teil der
javax.ws.rs
Hierarchie, die Teil der JAX-RS Spezifikation. Es wird von den Rahmenbedingungen der Umsetzung der Spezifikation wie Jersey. Es wird verwendet, wenn Karten zu finden, die nicht nur einen einzelnen Wert, sondern eine beliebige Anzahl von Werten. Ein Beispiel für die Anwendung wäre zum Beispiel die Speicherung des request-headers, wo Sie man könnte hinzufügen möchten mehrere Werte pro Schlüssel. Oder sogar keine der Tasten in einigen Fällen, wo es ist leichter zu handhaben, wird eine leere Liste im Vergleich zu einemnull
Wert.Nehmen Sie diese HTTP-header zum Beispiel:
Würden Sie dieses Modell durch
intern in Jersey. Diese Art von mehrfach-Wert-Speicher ist ein häufiges problem in Java gibt, die sich von anderen implementors von Karten, wie Guave.
Dies ist im Grunde das, was die javadoc sagt:
Seine eine Karte von Schlüssel-Werte-Paaren. Jeder key kann null oder mehrere Werte
Eine gute Verwendung einer MultivaluedMap ist mit UriInfo. Wenn Sie schreiben einen REST-Endpunkt, nimmt in mehreren QueryParams, die Sie verwenden können, UriInfo, um alle Parameter und extrahieren Sie Sie mit der getQuery () - Aufruf. Zum Beispiel:
Den MultivaluedMap ist hilfreich, weil Sie hätte von Parametern mit mehreren Werten. Zum Beispiel, wenn es eine Kunden-Datenbank, und Sie wollten mehrere Kunden, Ihre Karte wäre die Taste "customerID" und mehrere Werte verknüpft.
MultiValuedMap ist Teil javax.ws.rs.core-Paket nicht Kern Java. Es wird hauptsächlich Verwendung bei der Speicherung von Header-Wert in der Anforderung und der Verwendung
private MediaType getMediaType(Klasse entityClass, Type entityType,
MultivaluedMap Header) {
Finale Objekt mediaTypeHeader = headers.getFirst("Content-Type");
....
}
Außerdem ist es ganz nützlich, in UriInfo