Hva er Generics i Java? - En nybegynnerveiledning



Denne artikkelen om Generics in Java vil gi et kort innblikk i hva som er java generics og dets forskjellige typer sammen med eksempler.

Tenk på et eksempel der du må lage en liste over levende ting på en lokalitet. Det spiller ingen rolle om det er et menneske, et dyr eller en plante. Alt som betyr noe er en levende ting. I dette tilfellet vil du gruppere dem alle som 'levende ting' og ikke kategorisere dem. På samme måte, når du må lagre data, er det som betyr noe for deg innholdet og ikke datatypen, og det er der du bruker Generics. Generiske stoffer i er en språkfunksjon som tillater bruk av generiske typer og metoder.

Nedenfor er listen over emner jeg skal dekke i denne artikkelen:





Hva er Generics i Java?

Generiske er et begrep som betegner et sett med språkfunksjoner relatert til definisjonen og bruken av generiske typer og metoder. Java Generic-metoder skiller seg fra vanlige datatyper og metoder. Før Generics brukte vi å lagre alle typer gjenstander, dvs. ikke-generisk . Nå, Generics tvinge programmerer for å lagre en bestemt type objekter.

Nå som du vet hva som er Generics i Java, la oss gå videre og forstå hvorfor trenger du Java Generics.



Hvorfor Java Generics?

Hvis du ser på klasser, så vil du observere at de fleste klasser tar parameter / argument av typen Objekt. I utgangspunktet, i denne formen, kan de ta hvilken som helst Java-type som argument og returnere det samme objektet eller argumentet. De er i det vesentlige heterogen dvs. ikke av en lignende type.

FrameworkHierarchy - Generics in Java - Edureka

Noen ganger i Java-applikasjonen er ikke datatypen til inngangen løst. Inngangen kan være en heltall , til flyte eller . For å tilordne innspill til av riktig datatype, måtte det foretas forhåndskontroll. I den tradisjonelle tilnærmingen ble datatypen til inngangen sjekket etter å ha tatt inndataene, og deretter ble den tildelt variabelen til riktig datatype. Når denne logikken ble brukt, ble lengden på koden og utførelsestiden økt. For å unngå dette, Generikk ble introdusert . Når du bruker Generics, blir parameterne i koden sjekket automatisk ved kompilering, og den angir datatypen som standard. Så det er her du trenger begrepet generikk i Java.



Nå som du har fått litt innsikt i Generics, la oss gå videre og se på de forskjellige måtene hvordanGeneriske kan brukes på kildekoden.

java konvertere streng til dags dato

Typer Java Generics

Det er fire forskjellige måter Generics kan brukes på i Java, og de er som følger:

  1. Generisk type klasse
  2. Generisk grensesnitt
  3. Generisk metode
  4. Generisk konstruktør

La oss nå forstå hvordan generiske stoffer kan brukes til å skrive klasser i dybden.

1. Generisk typeklasse

En klasse sies å være generisk hvis den deklarerer en eller flere typevariabler. Disse variabeltypene er kjent som typeparametrene til . La oss forstå dette ved hjelp av et eksempel. I eksemplet nedenfor vil jeg lage en klasse med en eiendom x og egenskapstypen er et objekt.

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

Når du først har initialisert klassen med en bestemt type, skal klassen kun brukes med den aktuelle typen. F.eks. Hvis du vil at en forekomst av klassen skal holde verdien x av typen ‘ String ‘, Så skal programmereren stille og få den eneste type. Siden jeg har erklært eiendomstype til Object, er det ingen måte å håndheve denne begrensningen. En programmerer kan angi hvilket som helst objekt og kan forvente hvilken som helst returverditype fra få metode siden alle Java-typer er undertyper av klasse.

For å håndheve denne typen begrensninger kan vi bruke generiske stoffer som nedenfor:

klasse Genericclass {// T står for 'Type' privat T x offentlig tomrumssett (T x) {this.x = x} offentlig T get () {retur x}}

Nå kan du være trygg på at klassen ikke blir misbrukt med feil typer. Et enkelt eksempel på' Genericclass ”Ser ut som vist nedenfor:

Genericclass instance = new Genericclass () instance.set ('Edureka') instance.set (10) // Dette vil øke kompileringstidsfeilen

Så det er slik det fungerer. Detteanalogi gjelder også for grensesnittet. La oss raskt se på et eksempel for å forstå hvordan informasjon om generisk type kan brukes i grensesnitt i java.

2. Generisk grensesnitt

An refererer til de abstrakte datatypene. De tillater det å bli manipulert uavhengig av detaljene i deres representasjon. Dessuten danner de et hierarki i språk. La oss forstå hvordan generisk type kan brukes på grensesnitt i Java.

// Generisk grensesnitt definisjonsgrensesnitt GenericInterface {T2 PerformExecution (T1 x) T1 ReverseExecution (T2 x)} // En klasse som implementerer generisk grensesnittklasse Genericclass implementerer GenericInterface {public Integer PerformExecution (String x) {// executing code} public String ReverseExecution ( Heltall x) {// utførelseskode}}

Jeg håper du var i stand til å forstå hvordan Generics kan brukes på typeklasse og grensesnitt. La oss nå gå dypere inn i denne artikkelen og forstå hvordan det er nyttig for metoder og konstruktører.

3. Generiske metoder

Generiske metoder ligner mye på generiske klasser. De skiller seg fra hverandre i bare ett aspekt som Informasjon om omfang eller type er bare inne i metoden. Generiske metoder introduserer sine egne typeparametere.

La oss forstå dette med et eksempel. Nedenfor er et eksempel på en generisk metode som kan brukes til å finne alle forekomster av typeparametere i en liste over variabler.

public static int countAllOccurrences (T [] list, T element) {int count = 0 if (element == null) {for (T listElement: list) if (listElement == null) count ++} else {for (T listElement: list ) hvis (element.equals (listElement)) count ++} return count}

Hvis du passerer en liste over Streng for å søke i denne metoden, det fungerer bra. Men hvis du prøver å finne et nummer i listen over streng, vil det gi kompileringstidsfeil.

Denne analogien ligner også konstruktøren. La oss ta et eksempel for den generiske konstruktøren og forstå hvordan det fungerer.

4. Generisk konstruktør

Til byggmester er en blokk med kode som initialiserer det nyopprettede objektet. EN bygger ligner en forekomstmetode i J ava men det er ikke en metode da den ikke har returtype. Konstruktøren har samme navn som klassen og ser slik ut i J ava kode. La oss nå ta et eksempel og forstå hvordan det fungerer.

klasse Dimensjon {privat T lengde privat T bredde privat T høyde // Generisk konstruktør offentlig Dimensjon (T lengde, T bredde, T høyde) {super () this.length = lengde this.width = bredde this.height = høyde}}

I eksemplet ovenfor har dimensjonsklassens konstruktør typen informasjon. Så du kan ha en forekomst av dimensjon med alle attributter av en enkelt type. Så dette er hvordan du kan bruke generiske type konstruktører. Jeg håper du forsto hvilke generiske typer Java.

kokk vs dukke vs jenkins

La oss nå gå videre og se på fordelene med Generics i Java.

Fordeler med Generics i Java

1. Koden gjenbrukbarhet

Du kan komponere en strategi eller en klasse eller en en gang og bruk for hvilken som helst type eller hvilken som helst måte du trenger.

2. Individuelle typer casting er ikke påkrevd

I utgangspunktet har du gjenopprettet informasjon fra hver gang må du skrive den ut. Typecasting ved hver gjenopprettingsoppgave er en stor migrene. For å utrydde denne tilnærmingen ble generiske legemidler introdusert.

3. Implementering av en ikke-generisk algoritme

Det kan beregne algoritmene som fungerer på forskjellige slags ting som også er typesikre.

Det handlet om fordelene med Java Generics. Med dette kommer vi til slutten av denne artikkelen om Generics in Java. Jeg håper du syntes det var informativt og hjalp deg med å forstå Java Generics.

Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Vi er her for å hjelpe deg med hvert trinn på reisen, for å bli en foruten dette java-intervjuspørsmålene, kommer vi med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet i dette “Generics in Java ”Artikkel og vi kommer tilbake til deg så snart som mulig.