Programavimas

Porų klasė Atvykstate į „Java“ per „JavaFX“?

Porų klasė yra žinoma tiems iš mūsų, kurie ilgą laiką naudojo C ++. Nors buvo kalbėta apie jo įtraukimą į „Java“ kaip standartinę SDK dalį, tai yra kiek prieštaringa tema. Keli žmonės to oficialiai paprašė ir netgi buvo padaryta klaidų (4947273, 4983155 ir 6229146), kad ją gautumėte „Java“. Įraše, kuriame užduodamas klausimas, ar norime „java.util.Pair“, Alexas Milleris puikiai išlaiko savo darbą.

Jau yra įdiegta Pora arba a Porapanašus į „Java“. Be nežinomo skaičiaus įprastų vietinių kodų bazėse, yra viešai prieinamų pavyzdžių, tokių, kuriuos pateikia „Java Pair Class“, pavyzdžiai, pateikti „StackOverflow“ gijoje, „Ideograph“ bendroji pora ir (nenuostabu) „Java Tuples“ pora. „Android SDK“ taip pat yra „Pair“ klasė. Labiausiai mane nustebino tai, kad egzistuoja „JavaFX 2.0“ javafx.util.Pair klasė.

Paketo ir klasės pavadinimas dažniausiai siūlomas SDK versijai Pora klasė buvo java.util.Pora ir „JavaFX“ versija yra panaši į paketo pavadinimą: javafx.util.Pora. Paleidus „javap“ prieš šią klasę „JavaFX SDK“, gaunama ši išvestis.

Sudaryta iš „Pair.java“ viešosios klasės javafx.util.Pair {public K getKey (); public V getValue (); viešoji javafx.util.Pora (K, V); viešas java.lang.String toString (); public int hashCode (); viešoji loginė reikšmė lygi (java.lang.Object); } 

Kaip aukščiau javap išvestis rodo, kad tai gana paprasta klasė su pagrindiniu parametruojamu konstruktoriumi, „get“ metodais raktui ir reikšmės dalims Porair „įprasti“ metodai toString (), lygus (objektas)ir hashCode (). Kitas kodų sąrašas parodo, kaip naudojant parametruojamą konstruktorių raktas ir vertė pateikiami kiekvienam Pora kad yra akimirksniu.

 / ** * Pateikite garsių porų kolekciją. * * @return Garsių porų kolekcija. * / privati ​​statinė kolekcija createFamousPairs () {galutinis rinkinys poros = naujas „ArrayList“(); poros.add (nauja pora ("Yin", "Yang")); pairs.add (nauja pora („Veiksmas“, „Reakcija“)); pairs.add (nauja pora ("Druska", "Pipiras")); poros.add (nauja pora ("Starsky", "Hutch")); poros.add (nauja pora ("Lapė", "Mulderis")); poros.add (nauja pora („Betmenas“, „Robinas“)); poros.add (nauja pora („Fred Astaire“, „Ginger Rogers“)); pairs.add (nauja pora ("Flotsam", "Jetsam")); poros.add (nauja pora ("Brutus", "Nero")); poros.add (nauja Pora („Tomas“, „Džeris“)); poros.add (nauja pora ("Jekyll", "Hyde")); poros.add (nauja pora („Holmes“, „Watson“)); poros.add (nauja pora ("Mario", "Luigi")); poros.add (nauja pora („Pinky“, „Smegenys“)); pairs.add (nauja pora („Wallace“, „Gromit“)); grąžinti poras; } 

Prieiga prie kiekvieno rakto ir vertės Pora taip pat lengva, kaip parodyta kitame kodo pavyzdyje.

 / ** * Parašykite pateiktą porų rinkinį į standartinę išvestį. * * @param title Išvesties, parašytos standartine išvestimi, pavadinimas. * „@param“ poros „ToPrint“ poros turi būti įrašytos į standartinę išvestį. * / private static void writeCollectionOfPairs (galutinis eilutės pavadinimas, galutinis rinkinys pairsToPrint) {out.println (pavadinimas + ":"); for (final Pair pair: pairasToPrint) {out.println ("\ t" + pair.getKey () + "ir" + pair.getValue ()); }} 

Aukščiau pateiktas pavyzdys yra gana sugalvotas, tačiau galima teigti, kad jis yra efektyviausias Pora nes šiame konkrečiame pavyzdyje tai yra „poros“ sąvoka. Vienas didžiausių nusiskundimų dėl pridėjimo Pora SDK ar apskritai jį naudoti yra tai, kad jis nėra įvardytas pakankamai konkrečiai, kad apimtų objekto egzistavimo verslo tikslą. Aš iš tikrųjų galvojau apie „JavaFX“ naudojimą Pora klasę, kai parašiau savo eglutės pavyzdį įrašui „JavaFX 2.0 Christmas Tree“ („JavaFX 2.0 Shapes“). Aš galų gale nusprendžiau prieš tai ir panaudojau tinkamiau pavadintą lizdą Koordinuoti klasė. Tačiau aš galėjau lengvai pasinaudoti Pora tame pavyzdyje. Kitame kodų sąraše yra tas pats pavyzdys su įdėtomis Koordinuoti klasė pašalinta, o nuorodos į ją pakeistos Pora.

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