LINUX.ORG.RU

История изменений

Исправление 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, как его собсно и передали в функцию.