Java Generics - nieograniczone symbole wieloznaczne
Znak zapytania (?) Reprezentuje symbol wieloznaczny, oznacza nieznany typ w rodzajach generycznych. Może się zdarzyć, że dowolny obiekt może zostać użyty, gdy metoda może zostać zaimplementowana przy użyciu funkcji udostępnionej w klasie Object lub gdy kod jest niezależny od parametru typu.
Aby zadeklarować parametr nieograniczonej karty wieloznacznej, należy wymienić? tylko.
Przykład
Poniższy przykład ilustruje sposób użycia rozszerzeń do określenia nieograniczonego symbolu wieloznacznego.
package com.tutorialspoint;
import java.util.Arrays;
import java.util.List;
public class GenericsTester {
public static void printAll(List<?> list) {
for (Object item : list)
System.out.println(item + " ");
}
public static void main(String args[]) {
List<Integer> integerList = Arrays.asList(1, 2, 3);
printAll(integerList);
List<Double> doubleList = Arrays.asList(1.2, 2.3, 3.5);
printAll(doubleList);
}
}
To da następujący wynik -
Wynik
1
2
3
1.2
2.3
3.5