Tôi đã refactoring một số mã để làm cho nó dễ dàng hơn để đọc và tôi chạy vào một cái gì đó mà tôi thấy lạ và tôi đã tự hỏi nếu có ai có thể giải thích điều này với tôi.Các biến trong các trường hợp chuyển đổi khác nhau không thể có cùng tên?
đang Original:
if(tokensLeft == 3) {
String id = tokens.nextToken();
String value = tokens.nextToken();
String trailerId = tokens.nextToken();
rawListener.binaryInfo(id, Integer.parseInt(value), trailerId, this);
} else if(tokensLeft == 2) {
String id = tokens.nextToken();
String value = tokens.nextToken();
rawListener.binaryInfo(id, Integer.parseInt(value), this);
} else {
System.out.println("Method call binaryInfo could not be done because: \"Wrong number of parameters\"");
}
Sau refactoring:
switch(tokensLeft) {
case 3:
String id = tokens.nextToken();
String value = tokens.nextToken();
String trailerId = tokens.nextToken();
rawListener.binaryInfo(id, Integer.parseInt(value), trailerId, this);
break;
case 2:
String id = tokens.nextToken(); // Syntax error
String value = tokens.nextToken(); // Syntax error
rawListener.binaryInfo(id, Integer.parseInt(value), this);
break;
default:
System.out.println("Method call binaryInfo could not be done because: \"Wrong number of parameters\"");
break;
}
Thoạt nhìn này có vẻ hoàn toàn hợp lý, nhưng điều này mang lại cho tôi một lỗi cú pháp.
liên kết tất cả các tài liệu tham khảo cho một thay đổi tên địa phương (không thay đổi tài liệu tham khảo trong các tập tin khác)
Nó chỉ ra rằng đối với một số lý do trong một tuyên bố chuyển đổi, tôi không thể sử dụng String id
và String value
lại trong một trường hợp khác.
Điều này làm cho việc đặt tên biến của tôi khá khó xử.
Bây giờ bạn có thể nói: "Chỉ cần khai báo các biến của bạn phía trên bảng sao kê chuyển đổi." Nhưng điều đó có nghĩa là tôi luôn luôn tạo biến của tôi, ngay cả khi tokensLeft
không phải là 3 hoặc 2 và tôi sẽ không cần biến của tôi. Điều đó chỉ cảm thấy như sử dụng bộ nhớ không cần thiết.
Bất cứ ai có thể giải thích cho tôi lý do tại sao trường hợp chuyển đổi thực hiện việc này và cách tôi có thể giải quyết vấn đề của mình?
Sử dụng phương pháp - đó là thực hành tốt anyway và phạm vi của bạn sẽ được sắp xếp cho bạn. Nếu bạn thực sự muốn viết mã spaghetti thì sử dụng các khối tường minh ('{}'). –