, det ville være rart, hvis vi kunne skrive en enkelt slags metode, som kunne løse de elementer i en hel vifte, en snor system eller et system af enhver type, der støtter bestilling., java, generiske, metoder og generisk klasse for programmører at specificere, med en enkelt metode erklæring, et sæt af indbyrdes forbundne metoder, eller med en enkelt klasse erklæring, en række beslægtede typer hhv., generics giver også udarbejde tid type sikkerhed, der gør det muligt at fange ugyldig typer på udarbejde programmører. ved hjælp af java generelle koncept, vi kan skrive en generel metode til sortering af en bred vifte af genstande, påberåbe sig den generelle metode med heltal arrays, dobbelt arrays, snor arrays osv., for at sortere array - elementer, generiske metoder: kan du skriveen enkelt generel metode erklæring, som kan kaldes med argumenter af forskellige typer.på grundlag af de typer argumenter over for den generelle metode, de håndterer hver metode til på passende vis.der er følgende regler for at fastlægge generelle metoder:,,, alle generiske metode erklæringer er en type parameter afsnit afgrænset af vinkel parentes (< og >), der går forud for den metode, er tilbage - typen (< e > i det næste eksempel).,,, hver type parameter afsnit indeholder en eller mere type parametre adskilt ved kommaer.en type parameter, også kendt som type variabel, er en kode, der angiver en generisk type navn.,,, - parametre, kan anvendes til at angive de tilbage - og fungere som placeholders for de typer argumenter over for den generelle metode, der er kendt som faktiske type argumenter.,,, en generisk metoden er lig er angivet som enhver anden metode.bemærk, at type parametre kan kun repræsenterer - typer, primitive former (f.eks. int, dobbelt og char).,,, eksempel efter eksempel illustrerer, hvordan vi kan trykke opbud af forskellige typer ved hjælp af en enkelt generiske metode: offentlige klasse genericmethodtest (//generiske metode printarray offentlige statisk < e > tomrum printarray e [] inputarray) (//display system elementer til e element: inputarray) (system. printf ("% s" element)} system. println();} offentlige statisk tomrum vigtigste (string - args []) (//skabe arrays af heltal, dobbelt og karakter heltal [] intarray = (1, 2, 3, 4, 5); dobbelt [] doublearray = (1, 1, 2, 3, 4. 4); karakter [] chararray = {"h", "e", "l", "l", "o");system. println ("system integerarray indeholder"). printarray (intarray); //over en hel vifte system. println (") narray doublearray indeholder"). printarray (doublearray); //passere et dobbelt system - system. println (") narray characterarray indeholder:); printarray (chararray); //bestå en karakter system), vil det føre til følgende resultat:, system integerarray indeholder: 1, 2, 3, 4, 5, 6, system doublearray indeholder: 1.1 2.2 3.3 4.4 array characterarray indeholder: h e l l o, der afgrænses af type parametre:, der kan være tidspunkter, hvor du vil ønsker at begrænse de mulige typer, som er tilladt, skal overføres til en type parameter.for eksempel, en metode, der opererer på tal måske kun vil acceptere tilfælde af antallet eller dets undergrupper.det er hvad, der afgrænses type parametre for. at erklære en afgrænset type parameter, en liste over de type parameter navn, efterfulgt af udvider nøgleord, efterfulgt af en øvre grænse. eksempel: efter eksempel illustrerer, hvordan udvider anvendes generelt til enten "udvides" (som i klasser) eller "gennemfører" (som i grænseflader).dette eksempel er generiske metode til at vende tilbage til det største af tre lignende genstande: offentlige klasse maximumtest (//bestemmer den største af tre lignende genstande offentlige statisk < t omfatter sammenlignelige < t > > t maksimal (x, y, t z) {t max = x; //antager x er i den største, hvis (y.compareto (max) > 0) (max = y; //y er den største hidtil} hvis (z.compareto (max) > 0) (max = z; //z er den største nu} returnere max; //opgørelse største objekt} offentlige statisk tomrum vigtigste (string - args []) (system. printf ("max af% d% d og% d% d) n. n", 3, 4, 5, maksimale (3, 4, 5)system. printf ("maxm af%. 1f,%. 1f og%. 1f er%. f. n. n", 6, 6, 8, 8, 7, 7, maksimale (6, 6, 8, 8, 7, 7)); system. printf ("max af% s% og% s% r \\ n", "pærer", "æble", "orange", maksimale ("pærer", "æble", "orange")), vil det føre til følgende resultat:, aximum på 3, 4 og 5 er 5 aximum af 6. 6, 8, 8 og 7,7 er 8,8 aximum for pærer, æbler og appelsiner er pærer, generiske kategorier: en generisk klasse erklæring ligner en ikke - generisk klasse erklæring, bortset fra, at klasse navn er efterfulgt af en type parameter del. som med generiske metoder, den type parameter del af en generisk klasse kan have en eller flere typer parametre adskilt ved kommaer.These classes are known as parameterized classes or parameterized types because they accept one or more parameters.,Example:,Following example illustrates how we can define a generic class:, public class Box<T> { private T t; public void add(T t) { this.t = t; } public T get() { return t; } public static void main(String[] args) { Box<Integer> integerBox = new Box<Integer>(); Box<String> stringBox = new Box<String>(); integerBox.add(new Integer(10)); stringBox.add(new String("Hello World")); System.out.printf("Integer Value :%d\ \ ", integerBox.get()); System.out.printf("String Value :%s\ ", stringBox.get()); } } ,This would produce the following reresultat:, heltalsværdi: 10 - værdi: hej,
java - generics
Previous:java - samlinger
Next Page:java - mail