• Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;
    Начать пользоваться сервисом
  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта

Java Урок 62: ОБОБЩЕНИЯ, обобщенный класс с двумя параметрами типа

Для обобщенного типа можно объявлять более одного параметра типа. Чтобы указать два или более параметров типа, просто используйте разделенный запятыми список.

Скачать исходники для статьи можно ниже

Например, следующий класс TwoGen — это вариант класса Gen, который
принимает два параметра:

// Простой обобщенный класс с двумя
// параметрами типа: Т и V.
class TwoGen<T, V> {
   Т obi;
   V оb2 ;
   // Передать конструктору ссылки на объект типа Т и объект типа V.
   TwoGen(Т ol, V о2) {
      obi = ol;
      оb2 = о2;
   }

   // Показать типы Т и V.
   void showTypes() {
      System.out.println("Тип T: " + obi.getClass().getNameО);
      System.out.println("Тип V: " + ob2.getClass().getName());
   }

   T getobl() {
      return obi;
   }

   V getob2() {
      return ob2;
   }
}

// Демонстрация TwoGen.
class SimpGen {
   public static void main(String args[]) {
      TwoGen<Integer, String> tgObj = new TwoGen<Integer, String>(88, "Обобщения");
      // Показать типы.
      tgObj.showTypes();
      // Получить и показать значения,
      int v = tgObj.getobl();
      System.out.println("Значение: " + v);
      String str = tgObj.getob2();
      System.out.println("Значение: " + str);
   }
}

Результат работы этой программы:
Тип Т: java.lang.Integer
Тип V: java.lang.String
Значение: 88
Значение: Обобщения

Обратите внимание на объявление класса TwoGen:

class TwoGen<T, V> {

Оно задает два параметра типа — Т и V, разделенные запятой. Поскольку оно имеет два параметра типа, при создании объекта класса TwoGen должны быть переданы два аргумента типа, как показано ниже:

TwoGen<Integer, String> tgObj = new TwoGen<Integer, String> (88, "Обобщения");

В этом случае класс Integer подставляется вместо параметра Т, а класс String — вместо параметра V.

Хотя два аргумента в примере отличаются, допустимо передать в параметрах два одинаковых типа.

Например, следующая строка кода вполне корректна:

TwoGen<String, String> х = new TwoGen<String, String> ("A", "В");

В этом случае оба аргумента параметров типа V и Т будут иметь тип String.
Конечно, если оба аргумента всегда будут одинаковы, то два параметра не обязательны.

Добавить комментарий