Один из способов исправить нарушение принципа DRY (Don't Repeat Yourself) в данном случае - объединить два метода в один, используя параметр для определения способа сравнения:
public Token match(Object expectedToken, int tokenNum) { if (hasToken(_currentTokenNum)) { Object tokenType = getToken(tokenNum).get_type(); if (expectedToken instanceof ITokenType && expectedToken == tokenType) { return getToken(tokenNum); } else if (expectedToken instanceof Class<?> && ((Class<?>) expectedToken).isInstance(tokenType)) { return getToken(tokenNum); } } return null; }
Теперь вместо двух отдельных методов match используется один метод с параметром expectedToken, который определяет способ сравнения. Это позволит избежать повторения кода и улучшить читаемость программы.
Один из способов исправить нарушение принципа DRY (Don't Repeat Yourself) в данном случае - объединить два метода в один, используя параметр для определения способа сравнения:
public Token match(Object expectedToken, int tokenNum) {if (hasToken(_currentTokenNum)) {
Object tokenType = getToken(tokenNum).get_type();
if (expectedToken instanceof ITokenType && expectedToken == tokenType) {
return getToken(tokenNum);
} else if (expectedToken instanceof Class<?> && ((Class<?>) expectedToken).isInstance(tokenType)) {
return getToken(tokenNum);
}
}
return null;
}
Теперь вместо двух отдельных методов match используется один метод с параметром expectedToken, который определяет способ сравнения. Это позволит избежать повторения кода и улучшить читаемость программы.