История изменений
Исправление ovk48, (текущая версия) :
Менять тип у переменной — чем это лучше?
1) Тип после приведения может только сужаться, т.е. остается совместим с тем, что был до приведения (допустим, если переменная имеет тип не Object, а Integer|String, то можно использовать только (is Integer) и (is String)).
2) Тип «меняется» только в рамках узкого четко определенного скопа, в котором приведение логически непротиворечиво (is - это проверка + приведение). В данном случае - в рамках case { ... }.
И каким он будет после switch?
За рамками соотв. case будет Object, как его собсно и передали в функцию.
Исправление ovk48, :
Менять тип у переменной — чем это лучше?
1) Тип после приведения может только сужаться, т.е. остается совместим с тем, что был до приведения (допустим, если переменная имеет тип не Object, а Integer|String, то можно использовать только (is Integer) и (is String)).
2) Тип «меняется» только в рамках узкого четко определенного скопа, в котором приведение логически непротиворечиво (is - это проверка + приведение). В данном случае - в рамках case { ... }.
И каким он будет после switch?
За рамками соотв. case и else будет Object, как его собсно и передали в функцию.
Исходная версия ovk48, :
Менять тип у переменной — чем это лучше?
1) Тип после приведения может только сужаться, т.е. остается совместим с тем, что был до приведения (допустим, если переменная имеет тип не Object, а Integer|String, то можно использовать только (is Integer) и (is String)). 2) Тип «меняется» только в рамках узкого четко определенного скопа, в котором приведение логически непротиворечиво (is - это проверка + приведение). В данном случае - в рамках case { ... }.
И каким он будет после switch?
За рамками соотв. case и else будет Object, как его собсно и передали в функцию.