Назад к вопросам
Middle
73
questionbank
Как создать статический дженерический метод в Java?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Объявление статического дженерик-метода выглядит следующим образом:
class MyUtils {
// T - это параметр типа, объявленный перед возвращаемым типом
public static <T> T firstElement(List<T> list) {
if (list == null || list.isEmpty()) {
return null;
}
return list.get(0);
}
// Можно объявлять несколько параметров типа
public static <K, V> K firstKey(Map<K, V> map) {
if (map == null || map.isEmpty()) {
return null;
}
return map.keySet().iterator().next();
}
}
Ключевые моменты:
- Параметры типа объявляются перед возвращаемым типом метода.
- В остальном синтаксис метода стандартный (модификаторы доступа, ключевое слово
static, имя метода, параметры). - Параметры типа могут быть использованы в сигнатуре метода: в возвращаемом типе и/или в типах параметров метода.
- Вызывается такой метод как обычный статический метод, зачастую без явного указания типа, так как компилятор Java обычно может вывести его:
List<String> names = Arrays.asList("Alice", "Bob");
String first = MyUtils.firstElement(names); // Компилятор выводит T как String
Map<Integer, String> numbers = new HashMap<>();
numbers.put(1, "One");
Integer key = MyUtils.firstKey(numbers); // Компилятор выводит K как Integer и V как String
- При необходимости тип можно указать явно:
Integer explicitFirst = MyUtils.<Integer>firstElement(Arrays.asList(1, 2, 3));