Как я могу заставить метод экземпляра интерфейса принимать аргументы только одного класса?

Я хочу использовать такой интерфейс:

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.

Есть ли способ лучше?

8
задан Dunaril 1 March 2011 в 16:22
поделиться