如果无法修改 Event 接口,如何重构以下方法?PMD 报告太复杂,findbugs 报告 ITC_INHERITANCE_TYPE_CHECKING。还有幻数,如 3、4、5 等。
public int getEventCode(Event event) {
if (event instanceof OneEvent) {
return 1;
}
if (event instanceof TwoEvent) {
return 2;
}
if (event instanceof ThreeEvent) {
return 3;
}
if (event instanceof FourEvent) {
return 4;
}
if (event instanceof FiveEvent) {
return 5;
}
if (event instanceof SixEvent) {
return 6;
}
if (event instanceof SevenEvent) {
return 7;
}
if (event instanceof EightEvent) {
return 8;
}
if (event instanceof NineEvent) {
return 9;
}
if (event instanceof TenEvent) {
return 10;
}
return event.getClass().hashCode() + 10;
}