Is Java Util-vergelyker 'n funksionele koppelvlak?
Is Java Util-vergelyker 'n funksionele koppelvlak?

Video: Is Java Util-vergelyker 'n funksionele koppelvlak?

Video: Is Java Util-vergelyker 'n funksionele koppelvlak?
Video: CS50 2015 - Week 8 2024, November
Anonim

Inleiding. Die vergelyker koppelvlak het 'n groot opknapping in Java8 ondergaan terwyl dit steeds sy essensie behou, naamlik om voorwerpe in die versamelings te vergelyk en te sorteer. Vergelyker ondersteun nou verklarings via lambda-uitdrukkings aangesien dit 'n is Funksionele koppelvlak . Hier is 'n eenvoudige bronkode vir die java.

Met betrekking tot hierdie, is vergelyker 'n funksionele koppelvlak?

Alle voorwerpe in Java het reeds 'n implementering van die equals() metode, omdat hulle dit van die klas Object erf. Dus, Vergelyker is 'n funksionele koppelvlak want daar is net een ongeïmplementeerde abstrakte metode: vergelyk (T o1, T o2).

Mens kan ook vra, wat doen 'n vergelyker Java? Java Vergelyker is 'n koppelvlak vir sortering Java voorwerpe. Opgeroep deur " java . vergelyker ,” Java Vergelyker vergelyk twee Java voorwerpe in 'n "vergelyk (Object 01, Object 02)"-formaat. Met behulp van konfigureerbare metodes, Java Vergelyker kan voorwerpe vergelyk om 'n heelgetal terug te gee gebaseer op 'n positiewe, gelyke of negatiewe vergelyking.

Verder, wat is die gebruik van funksionele koppelvlak in Java?

A funksionele koppelvlak is 'n koppelvlak wat slegs een abstrakte metode bevat. Hulle kan net een funksionaliteit hê om uit te stal. Van Java 8 en verder, kan lambda-uitdrukkings gebruik word om die geval van a voor te stel funksionele koppelvlak . Runnable, ActionListener, Comparable is 'n paar van die voorbeelde van funksioneel koppelvlakke.

Is Lambda slegs vir funksionele koppelvlakke?

Ja, lambda uitdrukkings gebruik kan word enigste om die abstrakte metode binne a funksionele koppelvlak . Java is 'n objekgeoriënteerde taal, terwyl lambda uitdrukkings is a funksioneel kenmerk. Om by te voeg lambda uitdrukking ondersteuning aan Java, Java 8 besluit om in te voer funksionele koppelvlakke.

Aanbeveel: