Mam następujący:Tworzenie losowe wartości typu rodzajowego w Java
public class RandomList {
private List<Integer> list;
public List<Integer> getList() {
return list;
}
public RandomList (int n) {
list = new ArrayList<Integer>();
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
for (int i=0; i < n; i++)
{
Integer r = rand.nextInt();
list.add(r);
}
}
}
które daje mi listę wypełnioną losowych liczb całkowitych. Chciałbym to uogólnić, aby uzyskać listę losowych wartości Znaków lub list losowych wartości innych typów.
Więc to, czego chcę, to rodzajowy typ wersji, class RandomList<T>
. Mogę zastąpić wszędzie "Integer" przez "T", ale utknąłem na linii Integer r = rand.nextInt();
, która będzie czytać różne dla różnych typów.
Mam na myśli w następujący sposób:
- przepustkę w klasie typu rodzajowego do RandomList
- użyciu
instanceof
czek na przekazywane w klasie przeciwko pożądanych typów (Integer, Charakter ...) i w zależności od wyniku zwracana jest poprawna losowa wartość:
Czy to ma sens? Czy istnieje inny/lepszy sposób osiągnięcia tego, czego chcę?
Polecam tylko ** drugie ** podejście i eith er przedstawić pierwszą jako inną opcję (wątpliwą i budzącą wiele pytań) lub całkowicie ją usunąć. – Marco13
Doskonały. Dziękuję Ci. Poszedłem z drugim podejściem (Function). – user1583209
@ user1583209 Dodałem trzecią metodę, która jest znacznie czystsza. – KennethJ