Programovanie

Párová trieda prichádza na Javu cez JavaFX?

Triedu párov poznajú tí z nás, ktorí sme používali C ++ už dosť dlho. Aj keď sa hovorilo o jej pridaní do Javy ako štandardnej súčasti SDK, je to trochu kontroverzná téma. Niekoľko ľudí o to formálne požiadalo a boli dokonca podané chyby (4947273, 4983155 a 6229146), ktoré ho majú získať v prostredí Java. V príspevku, v ktorom je položená otázka Chceme program java.util.Pair?, Robí Alex Miller peknú prácu tým, že pokrýva obe strany problému.

Už existujú implementácie Pár alebo a Pár-aký ekvivalent tam vonku pre Javu. Okrem neznámeho počtu vlastných v miestnych kódových základniach existujú verejne dostupné príklady, ako napríklad príklady poskytnuté v triede Java Pair Class, príklady poskytnuté vo vlákne StackOverflow, generický pár Ideographu a (bez prekvapenia) dvojica Java Tuples. Sada Android SDK obsahuje aj triedu Pair. Najviac ma prekvapila existencia triedy javafx.util.Pair triedy JavaFX 2.0.

Názov balíka a triedy sa najčastejšie navrhuje pre verziu SDK verzie SDK Pár trieda bola java.util.Pair a verzia JavaFX je podobná v názve balíka: javafx.util.Pair. Spustenie javapu proti tejto triede v súprave JavaFX SDK vedie k nasledujúcemu výstupu.

Zostavené z „Pair.java“ verejnej triedy javafx.util.Pair {public K getKey (); public V getValue (); public javafx.util.Pair (K, V); public java.lang.String toString (); public int hashCode (); public boolean equals (java.lang.Object); } 

Ako je uvedené vyššie javap výstup naznačuje, že ide o pomerne jednoduchú triedu so základným parametrizovaným konštruktorom, metódami „get“ pre kľúčové a hodnotové časti Pára „bežné“ metódy natiahnuť(), rovná sa (Objekt)a hashCode (). Nasledujúci výpis kódu demonštruje použitie parametrizovaného konštruktora na poskytnutie kľúča a hodnoty každej inštancii Pár to je inštancované.

 / ** * Poskytnite zbierku slávnych párov. * * @return Zbierka slávnych párov. * / súkromná statická zbierka createFamousPairs () {final Collection pair = nový ArrayList(); pair.add (nový pár ("Yin", "Yang")); pair.add (nový pár („Akcia“, „Reakcia“)); pair.add (nový pár („soľ“, „korenie“)); pair.add (nový Pair ("Starsky", "Hutch")); pair.add (nový pár ("Fox", "Mulder")); pair.add (nový pár („Batman“, „Robin“)); pair.add (nový Pair ("Fred Astaire", "Ginger Rogers")); pair.add (nový pár ("Flotsam", "Jetsam")); pair.add (nový pár ("Brutus", "Nero")); pair.add (nový pár („Tom“, „Jerry“)); pair.add (nový Pair ("Jekyll", "Hyde")); pair.add (nový pár ("Holmes", "Watson")); pair.add (nový pár ("Mario", "Luigi")); pair.add (nový Pair ("Pinky", "The Brain")); pair.add (nový pár ("Wallace", "Gromit")); návratové páry; } 

Prístup ku kľúču a hodnote každého z nich Pár je tiež ľahké, ako ukazuje nasledujúca ukážka kódu.

 / ** * Zápis poskytnutej kolekcie párov na štandardný výstup. * * @param title Názov pre výstup zapísaný na štandardný výstup. * @param pairToPrint Páry, ktoré sa majú zapísať na štandardný výstup. * / private static void writeCollectionOfPairs (konečný názov reťazca, konečná zbierka pairToPrint) {out.println (title + ":"); for (final Pair pair: pairToPrint) {out.println ("\ t" + pair.getKey () + "a" + pair.getValue ()); }} 

Vyššie uvedený príklad je pomerne vykonštruovaný, ale dalo by sa považovať za najefektívnejšie použitie Pár pretože v tomto konkrétnom príklade je to skutočne reprezentovaný „párový“ koncept. Jedna z najväčších sťažností na pridanie Pár SDK alebo jeho všeobecné použitie spočíva v tom, že nie je pomenovaná dostatočne konkrétne na to, aby pokryla obchodný účel existencie objektu. Vlastne som premýšľal o použití JavaFX Pár triedy, keď som písal svoj príklad vianočného stromčeka pre príspevok Vianočný stromček JavaFX 2.0 (Tvary JavaFX 2.0). Nakoniec som sa rozhodol proti tomu a použil som vhodnejšie pomenovaný vnorený Koordinovať trieda. Mohol som však ľahko použiť Pár v tom príklade. Nasledujúci zoznam kódov obsahuje práve tento príklad so vnorenými Koordinovať trieda odstránená a odkazy na ňu nahradené Pár.

$config[zx-auto] not found$config[zx-overlay] not found