java 14 pattern matching
Before java 14, we had to have instanceof check, class casting, and variable assignment...

Check out the Official documentation.
private static void printIfInstanceOfStringPriorToJava14(Object x) {
    if(x instanceof String) {
        String person = (String) x;
        System.out.println(person);
    }
}Now we can create the person variable through pattern matching.
If x is instanceof String, then the person variable will be created.
private static void printIfInstanceOfStringPatternMatching(Object x) {
    if(x instanceof String person) {
        System.out.println(person);
    }
}Pattern matching can be also used to write one line checks. If x is an instance of User, the user variable is created and the address returned.
/**
 * Auxiliary class to be send to getUsersAddress(Object x) method.
 * Scroll down.
 */
@Builder
@Getter
static class User {
    private final String address;
}
private static String getUsersAddress(Object x) {	
//  if (x instanceof User) {
//     return ((User) x).getAddress();
//  }
//  return "";
    return x instanceof User user ? user.getAddress() : "";
}If on the left of && condition we create a pattern variable, then this variable can be also used on the right.
private static boolean validateAddress(Object x) {
    return x instanceof String address && address.length() < 20;
}Pattern variable cannot be used on the right of || because it means that x is not an instance of String if the second condition is checked.
private static boolean validateName(Object x, boolean ignoreCase) {
    return x instanceof String name || /*name.length() < 10 && */ ignoreCase;
}Interesting case
What variable will be printed: parameter or the class static member variable if true?
class ExampleWithStaticVariable {
    private static final String test = "test";
    public static void printIfInstanceOfStringOrDefault(Object x) {
        if (!(x instanceof String test)) {
            System.out.println(test);
        } else {
            System.out.println(test);
        }
    }
}