Я хочу использовать такой интерфейс:
public interface ResultItem {
public int getConfidence();
public boolean equals(ResultItem item);
public ResultItem cloneWithConfidence(int newConfidence);
}
Я реализовал его с помощью различных объектов, представляющих результат распознавания голоса.
Идея в том, что я хочу сравнить только результаты одного и того же вида. То есть, если я создаю класс IntResult
, реализующий ResultItem
, я хочу, чтобы сигнатуры методов стали:
public boolean equals(IntResult item);
public IntResult cloneWithConfidence(int newConfidence);
Я чувствую, что в моем интерфейсе есть недостаток дизайна, потому что сейчас я использую довольно уродливые преобразования в результаты cloneWithConfidence и других методов, возвращающих ResultItem.
Есть ли лучший способ?