|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Messaggi: n/a
|
java domanda semplice sui generics
ciao a tutti
sul libro che sto studiando per i parametri covarianti dei generics fa questo esempio Codice:
interface Animale<C extends Cibo> {
void mangia(C cibo);
}
public class Carnivoro implements Animale<Erbivoro> { public void mangia(Erbivoro erbivoro) { //un carnivoro potrebbe mangiare erbivori } }
public class Erbivoro<E extends Erba> implements Cibo, Animale<E> { public void mangia(E erba) { //un erbivoro mangia erba } public String getColore() { . . .
}
}
Codice:
interface Animale<C extends Cibo> {
void mangia(C cibo);
}
public class Carnivoro<Erbivoro> implements Animale<Erbivoro> { public void mangia(Erbivoro erbivoro) { //un carnivoro potrebbe mangiare erbivori } }
public class Erbivoro<Erba> implements Cibo, Animale<Erba> { public void mangia(E erba) { //un erbivoro mangia erba } public String getColore() { . . .
}
}
e se tanto alla fine erba non ha sottoclassi e carnivoro mangia solo erbivoro mettere direttamente Erba e non E extends erba? Seconda domanda se potete e volete.... List<String> nomiList = new ArrayList<String>(Arrays.asList(nomi)); dove nomi è un array di stringhe banalissimo con marco paolo e giovanni..... mi chiedo.........ma dove dico ad Arrays di accettare solo stringhe? dove sta la dichiarazione? ad esempio nomiList dichiaro che lavora solo con stringhe...e Arrays? Ultima modifica di vittorio130881 : 05-01-2015 alle 16:55. Motivo: fine2 |
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 1730
|
Quote:
Riguardo la seconda domanda, non ho mai visto inizializzare una lista passando Arrays.asList(nomeArray) come parametro al costruttore, ma bensì ho sempre visto e utilizzato soltanto o List<String> nomiList = new ArrayList<String>() per poi utilizzare i metodi add e addall per aggiungere le stringhe singole o da un array, oppure List<String> nomiList = Arrays.asList(nomi) , e in questo caso asList prende come paramento T... nomi, dove T è lo stesso generics che utlizzi per parametrizzare List.
__________________
i5-9400F + Zalman CNPS 8X Optima|Asus Prime B365M-A|Corsair Vengeance LP 2x8GB DDR4 2666Mhz|Sapphire Radeon RX 580 Pulse Ed. 4GB|Samsung 970 Evo Plus 250GB + OCZ Trion 100 (120GB) + Seagate Barracuda (1.5 TB)|Corsair TX650M|LG 27UD59 27" UHD|Windows 10 Pro| iPhone 17 Pro 256 Gb MBA M3 13" 16/512 GB AW 7 iPad Air 5 | 14 Trattative concluse sul forum, ultime 5 con: robby66,Darius_84,Konrad86,Dolphin69,dream83
|
|
|
|
|
|
|
#3 |
|
Messaggi: n/a
|
La seconda ok..... la prima me la rispiegheresti in altre parole per piacere ??????? Grazie mille per l'aiuto
|
|
|
|
#4 |
|
Messaggi: n/a
|
in pratica non ho capito se sono necessarie le cose scritte in rosso visto che le implementa da animale....
Codice:
public class Carnivoro implements Animale<Erbivoro> { public void mangia(Erbivoro erbivoro) { //un carnivoro potrebbe mangiare erbivori } }
public class Erbivoro<E extends Erba> implements Cibo, Animale<E> { public void mangia(E erba) { //un erbivoro mangia erba } public String getColore() { . . .
Ultima modifica di vittorio130881 : 05-01-2015 alle 19:52. Motivo: c |
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Aug 2006
Messaggi: 1730
|
Quote:
__________________
i5-9400F + Zalman CNPS 8X Optima|Asus Prime B365M-A|Corsair Vengeance LP 2x8GB DDR4 2666Mhz|Sapphire Radeon RX 580 Pulse Ed. 4GB|Samsung 970 Evo Plus 250GB + OCZ Trion 100 (120GB) + Seagate Barracuda (1.5 TB)|Corsair TX650M|LG 27UD59 27" UHD|Windows 10 Pro| iPhone 17 Pro 256 Gb MBA M3 13" 16/512 GB AW 7 iPad Air 5 | 14 Trattative concluse sul forum, ultime 5 con: robby66,Darius_84,Konrad86,Dolphin69,dream83
|
|
|
|
|
|
|
#6 |
|
Messaggi: n/a
|
grazie
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:10.












14 Trattative concluse sul forum, ultime 5 con: robby66,Darius_84,Konrad86,Dolphin69,dream83







