Java | Фишки и трюки
7.21K subscribers
182 photos
29 videos
6 files
40 links
Java: примеры кода, интересные фишки и полезные трюки

Купить рекламу: https://telega.in/c/java_tips_and_tricks

✍️По всем вопросам: @Pascal4eg
Download Telegram
⌨️ instanceof или getClass() == ...

Часто нам нужно проверить является ли объект экземпляром определенного класса, например в методе equals(). Существует несколько способов это сделать. Разберём два из них.

instanceof проверяет, является ли ссылка на объект в левой части экземпляром типа в правой части или каким-либо подтипом.

getClass() == ... проверяет, идентичны ли типы.

Выбирать способ проверки типа нужно исходя из решаемой задачи. В методе equals() можно использовать оба способа в зависимости от того собираетесь ли вы позволять сравнивать объект определенного класса и объект класса наследника.


class Parent { }
class Child extends Parent { }

public class Test {
public static void main(String[] args) {
Parent parent = new Parent();
Child child = new Child();
System.out.println(parent instanceof Parent); // true
System.out.println(child instanceof Parent); // true
System.out.println(parent.getClass() == Parent.class); // true
System.out.println(child.getClass() == Parent.class); // false
}
}


#java #instanceof #getClass
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍5
⌨️ Pattern Matching для instanceof

Начиная с Java 16, проверка типов с помощью instanceof стала гораздо удобнее благодаря Pattern Matching. Раньше, после проверки объекта на принадлежность к определённому классу, нужно было выполнять явное приведение типа. Теперь это можно сделать в одной строке.

Пример до Java 16:

if (obj instanceof String) {
String str = (String) obj;
System.out.println(str.length());
}


Пример с Pattern Matching:

if (obj instanceof String str) {
System.out.println(str.length());
}


Теперь после instanceof можно сразу же использовать объект нужного типа в коде, что делает программу более читабельной и компактной.

#java #PatternMatching #instanceof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍261
⌨️ Pattern Matching для instanceof

Начиная с Java 16, проверка типов с помощью instanceof стала гораздо удобнее благодаря Pattern Matching. Раньше, после проверки объекта на принадлежность к определённому классу, нужно было выполнять явное приведение типа. Теперь это можно сделать в одной строке.

Пример до Java 16:

if (obj instanceof String) {
String str = (String) obj;
System.out.println(str.length());
}


Пример с Pattern Matching:

if (obj instanceof String str) {
System.out.println(str.length());
}


Теперь после instanceof можно сразу же использовать объект нужного типа в коде, что делает программу более читабельной и компактной.

#java #PatternMatching #instanceof
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥31
⌨️ instanceof или getClass() == ...

Часто нам нужно проверить является ли объект экземпляром определенного класса, например в методе equals(). Существует несколько способов это сделать. Разберём два из них.

instanceof проверяет, является ли ссылка на объект в левой части экземпляром типа в правой части или каким-либо подтипом.

getClass() == ... проверяет, идентичны ли типы.

Выбирать способ проверки типа нужно исходя из решаемой задачи. В методе equals() можно использовать оба способа в зависимости от того собираетесь ли вы позволять сравнивать объект определенного класса и объект класса наследника.


class Parent { }
class Child extends Parent { }

public class Test {
public static void main(String[] args) {
Parent parent = new Parent();
Child child = new Child();
System.out.println(parent instanceof Parent); // true
System.out.println(child instanceof Parent); // true
System.out.println(parent.getClass() == Parent.class); // true
System.out.println(child.getClass() == Parent.class); // false
}
}


#java #instanceof #getClass
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114