Назад к вопросам
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));