ja chce osiągnąć coś takiego w Javie, ale coraz skompilować błąd czasu:Rozwiąż Java Generic typ błędu z klasy abstrakcyjnej metody
The method onMessage(TextMessage, Class) in the type AbstractTestLoader is not applicable for the arguments (TextMessage, Class)
rozumiem przyczynę tego błędu, ale czuję też nie powinno być sposób na osiągnięcie tego przy rzucaniu lub może być jakiś inny sposób.
public abstract class AbstractTestLoader<T extends AbstractEntity<T>> {
public void onMessage(TextMessage message) throws Exception {
onMessage(message, this.getClass()); // I want to correct this line in such a way so that I can call below method with actual Class of {T extends AbstractEntity<T>}
}
public void onMessage(TextMessage message, Class<T> clazz) throws Exception {
//here my original logic will go
}
}
Dlaczego * czujesz się * tak? Być może chcesz dodać swoje zrozumienie podstawowego problemu, aby upewnić się, że wszyscy są na tej samej stronie. Ponieważ musimy zgodzić się z podstawową przyczyną podczas badania przestrzeni rozwiązania. – GhostCat
Hi @GhostCat, próbowałem już zbadać mój podstawowy problem za pomocą linii komentarza 'Chcę poprawić tę linię w taki sposób, żebym mógł wywołać poniższą metodę z rzeczywistą klasą {T rozszerza AbstractEntity}' Możesz także zapoznaj się z rozwiązaniem wysłanym przeze mnie, aby uzyskać lepsze rozwiązanie, jeśli masz ochotę odpowiedzieć. –
Czy 'AbstractTestLoader' będzie bezpośrednią superklasą? – glee8e