Was nutzt Java 6 Interface MultivaluedMap?

8

Was nützt Java-6-Interface MultivaledMap ?

    
malatesh 11.03.2014, 11:16
quelle

4 Antworten

19

Die Schnittstelle gehört nicht zu "Java", dh die Schnittstelle gehört nicht zu den Kernbibliotheken. Es ist ein Teil der javax.ws.rs Hierarchie, die Teil der JAX-RS Spezifikation ist. Es wird von Frameworks verwendet, die die Spezifikation implementieren, beispielsweise Jersey . Es wird immer dann verwendet, wenn sich Karten nicht nur auf einen einzelnen Wert, sondern auf eine beliebige Anzahl von Werten beziehen. Ein Beispiel für die Verwendung wäre beispielsweise das Speichern eines Anforderungsheaders, in dem Sie möglicherweise mehrere Werte pro Schlüssel hinzufügen möchten. Oder sogar keine Schlüssel in einigen Fällen, in denen es einfacher ist, mit einer leeren Liste umzugehen als mit einem null -Wert.

Nehmen Sie diesen HTTP-Header zum Beispiel:

  

Accept-Encoding: komprimieren; q = 0,5, gzip; q = 1,0

Sie würden dies modellieren durch

%Vor%

intern in Jersey. Diese Art von Mehrfachwertspeicher ist ein häufiges Problem in Java, das von anderen Kartenimplementierern wie Guava .

Das ist im Grunde das, was der Javadoc sagt:

  

Eine Zuordnung von Schlüssel / Wert-Paaren. Jeder Schlüssel kann null oder mehr Werte haben.

    
Rafael Winterhalter 11.03.2014, 12:23
quelle
1

Es ist eine Karte von Schlüssel-Wert-Paaren. Jeder Schlüssel kann null oder mehrere Werte haben

%Vor%     
Arjit 11.03.2014 11:19
quelle
1

Eine gute Verwendung einer MultivaledMap ist mit UriInfo möglich. Wenn Sie einen REST-Endpunkt schreiben, der mehrere QueryParams akzeptiert, können Sie mit UriInfo alle Parameter abrufen und sie mithilfe des Aufrufs getQuery () extrahieren. Zum Beispiel:

%Vor%

Die MultivaledMap ist hilfreich, weil Sie Parameter mit mehreren Werten haben könnten. Wenn es sich beispielsweise um eine Kundendatenbank handelt und Sie mehrere Kunden erhalten möchten, enthält Ihre Karte den Schlüssel "customerID" und mehrere verknüpfte Werte.

    
LConrad 22.07.2014 18:35
quelle
0

MultiValuedMap ist Teil des Pakets javax.ws.rs.core, nicht Core Java. Es wird hauptsächlich verwendet, um Header-Werte in Anfrage zu speichern und zu verwenden

private MediaType getMediaType (Klasse entityClass, Typ entityType,         MehrwertigeMap-Header) {     endgültiges Objekt mediaTypeHeader = headers.getFirst ("Inhaltstyp"); .... }

Auch ist es sehr nützlich in UriInfo

%Vor%     
Chitrapal Singh 28.10.2016 09:23
quelle