Wat is Generics in Java? - Een gids voor beginners



Dit artikel over generieke geneesmiddelen in Java geeft een kort inzicht in wat Java-generieke geneesmiddelen en de verschillende typen ervan zijn, samen met voorbeelden.

Beschouw een voorbeeld waarin u een lijst moet maken van de levende wezens in een plaats. Het maakt niet uit of het een mens, een dier of een plant is. Het enige dat telt is iets dat leeft. In dit geval zou je ze allemaal groeperen als 'Levende Dingen' en ze niet categoriseren. Evenzo, wanneer u bepaalde gegevens moet opslaan, is het belangrijkste voor u de inhoud en niet het datatype, en dat is waar u Generics gebruikt. Generics in is een taalfunctie die het gebruik van generieke typen en methoden mogelijk maakt.

Hieronder staat de lijst met onderwerpen die ik in dit artikel zal behandelen:





Wat is Generics in Java?

Merkloos product is een term die een reeks taalkenmerken aangeeft die verband houden met de definitie en het gebruik van generieke typen en methoden. Generieke Java-methoden verschillen van reguliere gegevenstypen en methoden. Vóór Generics gebruikten we de om elk type objecten op te slaan, d.w.z. niet-generiek . Nu forceren Generics het programmeur om een ​​specifiek type objecten op te slaan.

Nu u weet wat Generics in Java is, gaan we verder en begrijpen waarom u Java Generics nodig heeft.



Waarom Java Generics?

Als je kijkt naar de klassen, dan zult u zien dat de meeste klassen een parameter / argument van het type Object gebruiken. In deze vorm kunnen ze in principe elk Java-type als argument aannemen en hetzelfde object of argument retourneren. Ze zijn in wezen heterogeen d.w.z. niet van een vergelijkbaar type.

FrameworkHierarchy - Generics in Java - Edureka

Soms staat in de Java-applicatie het gegevenstype van de invoer niet vast. De invoer kan een geheel getal , naar vlotter of . Om de ingang toe te wijzen aan de van het juiste datatype, moesten er vooraf controles worden uitgevoerd. In de traditionele benadering werd na het nemen van de invoer het datatype van de invoer gecontroleerd en vervolgens toegewezen aan de variabele van het juiste datatype. Toen deze logica werd gebruikt, werden de lengte van de code en de uitvoeringstijd verlengd. Om dit te vermijden, Generieke geneesmiddelen werden geïntroduceerd . Wanneer u Generics gebruikt, worden de parameters in de code automatisch gecontroleerd tijdens het compileren en wordt het datatype standaard ingesteld. Hier heb je dus het concept van generieke geneesmiddelen in Java nodig.



Nu u wat inzichten heeft opgedaan over Generics, gaan we verder en kijken naar de verschillende manieren waaropGenerieke gegevens kunnen worden toegepast op de broncode.

Soorten Java Generics

Er zijn 4 verschillende manieren waarop Generics in Java kunnen worden toegepast en ze zijn als volgt:

  1. Generieke typeklasse
  2. Generieke interface
  3. Generieke methode
  4. Generieke Constructor

Laten we nu eens kijken hoe generieke termen diepgaand kunnen worden toegepast op typeklasse.

1. Generieke typeklasse

Een klasse wordt generiek genoemd als deze een of meer typevariabelen declareert. Deze variabeletypen staan ​​bekend als de typeparameters van de . Laten we dit begrijpen met behulp van een voorbeeld. In het onderstaande voorbeeld zal ik een klasse maken met één eigenschap X en het type eigenschap is een object.

class Genericclass {private Object x public void set (Object x) {this.x = x} public Object get () {return x}}

Hier, als u de klasse eenmaal met een bepaald type hebt geïnitialiseerd, mag de klasse alleen met dat specifieke type worden gebruikt. Bijv. Als u wilt dat één instantie van de klasse de waarde bevat X van het type ‘ Draad ‘, Dan zou de programmeur moeten instellen en de enige krijgen type. Aangezien ik het eigenschapstype heb gedeclareerd voor Object, is er geen manier om deze beperking af te dwingen. Een programmeur kan elk object instellen en kan elk retourwaardetype verwachten haal methode aangezien alle Java-typen subtypen zijn van klasse.

Om dit type beperking af te dwingen, kunnen we generieke geneesmiddelen gebruiken zoals hieronder:

class Genericclass {// T staat voor 'Type' private T x public void set (T x) {this.x = x} public T get () {return x}}

Nu kunt u er zeker van zijn dat klasse niet zal worden misbruikt met verkeerde typen. Een simpel voorbeeld van' Generieke klasse ”Ziet eruit zoals hieronder weergegeven:

Genericclass instance = new Genericclass () instance.set ('Edureka') instance.set (10) // Dit verhoogt de compilatietijdfout

Dus zo werkt het. Dezeanalogie geldt ook voor de interface. Laten we snel een voorbeeld bekijken om te begrijpen hoe informatie van het generieke type kan worden gebruikt in interfaces in Java.

2. Generieke interface

Een verwijst naar de abstracte gegevenstypen. Zij staan ​​toe onafhankelijk van de details van hun representatie worden gemanipuleerd. Ze vormen ook een hiërarchie in talen. Laten we eens kijken hoe generiek type kan worden toegepast op interfaces in Java.

// Generieke interfacedefinitie-interface GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // Een klasse die generieke interfaceklasse Genericclass implementeert GenericInterface {public Integer PerformExecution (String x) {// uitvoeringscode} public String ReverseExecution ( Geheel getal x) {// uitvoeringscode}}

Ik hoop dat je hebt kunnen begrijpen hoe Generics kan worden toegepast op typeklassen en interfaces. Laten we nu dieper ingaan op dit artikel en begrijpen hoe het nuttig is voor methoden en constructeurs.

3. Generieke methoden

Generieke methoden lijken veel op generieke klassen. Ze verschillen van elkaar in slechts één aspect dat de bereik of type-informatie bevindt zich alleen in de methode. Generieke methoden introduceren hun eigen typeparameters.

wat is mvc in java

Laten we dit met een voorbeeld begrijpen. Hieronder ziet u een voorbeeld van een generieke methode die kan worden gebruikt om alle voorkomende typeparameters in een lijst met variabelen te vinden.

openbare statische int countAllOccurrences (T [] lijst, T-element) {int count = 0 if (element == null) {voor (T listElement: lijst) if (listElement == null) count ++} else {voor (T listElement: lijst ) if (element.equals (listElement)) count ++} return count}

Als je slaagt voor een lijst met String om met deze methode te zoeken, het werkt prima. Maar als u een nummer probeert te vinden in de lijst met tekenreeksen, geeft dit een fout tijdens het compileren.

Deze analogie is ook vergelijkbaar met de constructor. Laten we een voorbeeld nemen voor de generieke constructor en begrijpen hoe deze werkt.

4. Generieke constructor

Om te bouwen is een codeblok dat het nieuw gemaakte object initialiseert. EEN bouwer lijkt op een instantiemethode in J ava maar het is geen methode omdat het geen retourtype heeft. De constructeur heeft dezelfde naam als de klasse en ziet er zo uit in J ava code. Laten we nu een voorbeeld nemen en begrijpen hoe het werkt.

klasse Dimensie {privé T lengte privé T breedte privé T hoogte // Generiek constructor public Dimensie (T lengte, T breedte, T hoogte) {super () this.length = lengte this.width = breedte this.height = hoogte}}

In het bovenstaande voorbeeld heeft de constructor van de Dimension-klasse de type-informatie. U kunt dus een exemplaar van een dimensie hebben met alle attributen van slechts één type. Dit is dus hoe je constructors van het generieke type kunt gebruiken. Ik hoop dat je de soorten generieke geneesmiddelen in Java hebt begrepen.

Laten we nu verder gaan en kijken naar de voordelen van generieke geneesmiddelen in Java.

Voordelen van Generics in Java

1. Herbruikbaarheid van code

U kunt een strategie of een klasse of een een keer en gebruik voor elk type of elke manier die u nodig heeft.

2. Individuele typen casten is niet vereist

In feite heb je informatie hersteld van elke keer moet je het typen. Typecasting bij elke hersteltaak is een ernstige migraine. Om die aanpak uit te roeien, werden generieke geneesmiddelen geïntroduceerd.

3. Implementeren van een niet-generiek algoritme

Het kan de algoritmen berekenen die werken op verschillende soorten items die ook type veilig zijn.

Dat ging allemaal over de voordelen van Java Generics. Hiermee komen we aan het einde van dit artikel over Generics in Java. Ik hoop dat je het informatief vond en je hielp bij het begrijpen van Java Generics.

Bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. We zijn hier om je te helpen bij elke stap op je reis, om naast deze Java-interviewvragen ook een curriculum te bedenken dat is ontworpen voor studenten en professionals die een Java-ontwikkelaar willen worden. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Gelieve dit te vermelden in het commentaargedeelte van deze “Generics in Java ' artikel en we nemen zo snel mogelijk contact met u op.