Re-instantiating variables in switch case
java, switch-statement
Solution
Write each case statement in a different block:
switch (type) {
case 1: {
String name = (String) respone.get("name");
user.setName(name);
break;
}
case 2: {
String surname = (String) respone.get("surname");
user.setSurname(surname);
break;
}
...
}
Problem
Why I cannot create variables in a each case with same name. For example, from the code below, in `case 3` it will complain that `String name` already exists - but why would it? `Case 1` has never been and will never be called. I would not want to extract the definitions out of the `switch-case`. So why using `if` statements it lets to define same names in each case, but in `switch-case` it doesn't? Here is a simple Java code with a switch case: ``` int type = 3; switch (type) { case 1: String name = (String) respone.get("name"); user.setName(name); break; case 2: String surname = (String) respone.get("surname"); user.setSurname(surname); break; case 3: String name = (String) respone.get("name"); user.clearName(name); break; default: ... } ```