Mam następujący interfejs:wywnioskować rodzajowych z interfejsem - java
public interface Evaluator<T> {
T evaluate(Collection<Extractable> sample);
}
a klasa implementująca ten interfejs:
public class PrecisionEvaluator implements Evaluator<Map<Triple<Short, Integer, String>, AttributePrecisionBean>> {
@Override
public Map<Triple<Short, Integer, String>, AttributePrecisionBean> evaluate(Collection<Extractable> sample){
...
}
więc korzystanie z powyższym byłoby:
Evaluator<Map<Triple<Short, Integer, String>, AttributePrecisionBean>> eval = new PrecisionEvaluator();
Czy Czy istnieje sposób, aby interfejs Evaluator domyślnie zwrócił ogólny typ zdefiniowany w klasie implementującej go? tak, że użycie byłoby po prostu następujące:
Evaluator eval = new PrecisionEvaluator();
Czy istnieje lepszy sposób, aby o tym zadbać?
Myślę, że prawdziwy problem, który masz, to to, że nie dałeś "Map, AttributePrecisionBean>' to własna nazwa, a zatem jej własna klasa. –
SpaceTrucker