Рубрики
Без рубрики

Быстрые закуски на Java. Дженерики

Вступление Эта серия будет посвящена базовому пониманию Java…. С тегами java, android, новички, тристан.

Быстрые игры на Java (Серия из 13 частей)

  • Эта серия будет посвящена базовому пониманию Java. Всякий раз, когда я ловлю себя на том, что спрашиваю: “Как это работает?”. Я создам сообщение в блоге и размещу его здесь. Эта серия будет не по порядку, так что не стесняйтесь читать любой пост, который вы сочтете наиболее актуальным. Все, что я опубликовал в этом посте, можно найти в официальной общей документации здесь

Что такое дженерики?

  • Если вы вообще работали с Java, то я уверен, что вы видели < > эти две маленькие угловые скобки, и именно из-за них возможны дженерики в Java. Generics позволяет типам (классам и интерфейсам) быть параметрами при определении классов, интерфейсов или методов. Это похоже на то, когда мы определяем параметры обычным методом. Разница в том, что входные данные для методов используют значения, в то время как входные данные для <> являются типами (классами, интерфейсами)

Зачем использовать дженерики?

  • Ну, есть две основные причины:

1): более строгая проверка типов во время компиляции. Это означает, что наш компилятор способен обнаруживать ошибки за нас, что устраняет некоторые ошибки во время выполнения. Ошибки во время выполнения – это ошибки, которые приводят к сбою нашего приложения.

2): устранение слепков. Если вы не знакомы с приведениями, это процесс, при котором переменная ведет себя как переменная другого типа. Пример использования приведений ниже:

List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);

  • благодаря дженерикам, которые становятся:
List list = new ArrayList();
list.add("hello");
String s = list.get(0);   // no cast

  • Обратите внимание, что во втором примере у нас больше нет синтаксиса (Строка) . Это изменение может показаться незначительным, но оно помогает устранить ошибки. Теперь давайте перейдем к примеру не-универсального класса и универсального класса.

неродовой класс

public class Box {
    private Object object;
    public Box (Object object){
       this.object = object;
    }
    public void set(Object object) { this.object = object; }
    public Object get() { return object; }
}

Bob box = new Box("It do be like that sometimes")


  • Обратите внимание, что мы использовали Object вместо определенного типа, это потому, что Object является суперклассом всех других классов в Java. Использование объекта позволяет нам использовать любой тип объекта, который мы хотим. Недостатком использования Object является то, что нет способа узнать, используем ли мы разные типы, когда этого делать не следует. Это опасно, потому что мы будем знать об определенных ошибках только во время выполнения. Ошибка во время выполнения приведет к сбою нашего приложения.

универсальный класс

public class Box {
    // T stands for "Type"
    private T t;

    public void set(T t) { this.t = t; }
    public T get() { return t; }
}

Box integerBox = new Box(); 
// creating a generic box

  • Как вы заметили, все, что мы сделали, это заменили |/Объект с и добавил несколько угловых скобок (подробнее о них позже). Это позволит компилятору выполнять проверку типов перед запуском кода и приведет к гораздо меньшему количеству ошибок во время выполнения.

Бриллиант <>

  • Две угловые скобки, которые мы видели, неофициально называются “алмазным оператором”. Его основная задача – упростить использование дженериков в Java. При просмотре кода java я уверен, что вы видели что-то подобное Поле <Целое число> Поле<>() , теперь что делает пустое <> подлый? Ну, короче говоря, компилятор определяет тип, поэтому нам не нужно явно указывать, что это такое.

— Это всего лишь поверхностное понимание генетики, пожалуйста, ознакомьтесь с документацией ЗДЕСЬ

  • Спасибо, что нашли время в свой рабочий день, чтобы прочитать этот мой пост в блоге. Если у вас есть какие-либо вопросы или сомнения, пожалуйста, прокомментируйте ниже или свяжитесь со мной по Твиттер .
  • Также обязательно загляните на мой канал YouTube для получения дополнительных уроков по программированию.

Быстрые игры на Java (Серия из 13 частей)

Оригинал: “https://dev.to/theplebdev/java-quickies-generics-31ni”