View Full Version : [JAVA] Generics... come fare?
Salve a tutti.
Vorrei fare una classetta così:
...
private Callable<?> c;
public <V> Costruttore(Callable<V> c)
{
this.c = c;
}
public <V> V get()
throws Exception
{
return c.call();
}
Ma ovviamente non funziona...
In pratica vorrei riusare il parametro V del Callable in un altro metodo,
in modo da mantenere la "genericità".
Qualche idea (se si può fare)?
Grazie
^TiGeRShArK^
10-07-2008, 11:43
non ho capito... :fagiano:
ti da problemi il return del get?
in quel caso credo basti fare un cast a V o no?
oppure non ho capito una mazza di quello che hai chiesto... :stordita:
Anche con il cast mi dà un warning di type safety...
Il problema è quel '?' nel campo c, ci vorrei mettere 'V'
("V cannot be resolved to a type")
^TiGeRShArK^
10-07-2008, 12:02
se ho capito bene dovresti fare qualcosa di equivalente:
import java.util.List;
public class Prova<V> {
private List<V> c;
public Prova(List<V> c)
{
this.c = c;
}
public V get()
throws Exception
{
return c.get(0);
}
}
che a me compila senza errori o warning...
Sì, ma non voglio che la mia classe sia generica,
ma che prenda il tipo V dal parametro del costruttore,
ma mi sto rendendo conto che tale parametro si può
usare solo all'interno dello stesso metodo...
^TiGeRShArK^
10-07-2008, 12:12
Sì, ma non voglio che la mia classe sia generica,
ma che prenda il tipo V dal parametro del costruttore,
ma mi sto rendendo conto che tale parametro si può
usare solo all'interno dello stesso metodo...
e allora mi sa che l'unica soluzione è usare il cast che ti ho detto prima..
tanto se sai già che l'oggetto che ricevi è un Callable<V>, allora puoi tranquillamente castare (V)c.call() che tanto il controllo è già stato effettuato in precedenza e il warning lo puoi tranquillamente ignorare :p
Altre soluzioni non me ne vengono in mente se non vuoi rendere la classe generica.. :boh:
Grazie lo stesso...
Ma a questo punto ritorno Object, così mi scompare il warning.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.