¿Cómo puedo hacer que un método de instancia de interfaz acepte argumentos de la misma clase solamente?

Quiero usar una interfaz como esta:

public interface ResultItem {
    public int getConfidence();
    public boolean equals(ResultItem item);
    public ResultItem cloneWithConfidence(int newConfidence);
}

o tengo implementado por diferentes tipos de objetos que representan un resultado de reconocimiento de voz.

La idea es que deseo comparar solo los resultados del mismo tipo. Es decir, si creo una claseIntResult implementarResultItem, Quiero que las firmas del método se conviertan en:

public boolean equals(IntResult item);
public IntResult cloneWithConfidence(int newConfidence);

Siento que hay una falla de diseño en mi interfaz, porque por ahora estoy usando modelos bastante feos en los resultados de cloneWithConfidence y de otros métodos que devuelven un ResultItem.

¿Hay una mejor manera?

Respuestas a la pregunta(3)

Su respuesta a la pregunta