Почему этот код Java работает (пример внутри условия)JAVA

Программисты JAVA общаются здесь
Гость
Почему этот код Java работает (пример внутри условия)

Сообщение Гость »


Мне хотелось бы знать, почему работает этот код, в котором я создаю экземпляр объекта внутри блока if, а область действия этого объекта находится за пределами блока if во всем коде. Особенность этого случая заключается в том, что он работает только в том случае, если условие ложно и если оно имеет соответствующее исключение throw в случае, если оно истинно. Если условие оставить без отрицания или без throw, этот объект больше не будет доступен нигде в коде. Вот пример кода, который работает именно так, как я упомянул, но хотелось бы понять причину этого, так как формального объяснения в интернете я не нашел.

Код: Выделить всё

import java.util.HashMap;
import java.util.Map;

public class Main {
public static void procesarDatos(Map datos) {
if (!(datos.get("tipo") instanceof String tipo && tipo.equals("A"))) {

throw new RuntimeException("Error");
}
System.out.println(tipo);
}

public static void main(String[] args) {
Map datosA = new HashMap();
datosA.put("tipo", "A");
procesarDatos(datosA);

}
}
I tried to understand what happen with this code, why it works because i dont found any information about it


Источник: https://stackoverflow.com/questions/781 ... -condition

Вернуться в «JAVA»