Ho una classe generica astratta:Java Generics: Richiede generico per essere sottoclasse di un certo tipo
public abstract class AbstractMessageHandler<T extends AbstractMessageHandler>
{
public abstract List<String> getTypesOfMessages();
public abstract void handleMessage(String message, CometClient client);
public T setResponseValues(AbstractMessage request, T response)
{
response.setCompanyId(request.getCompanyId());
response.setMessageGroup(request.getMessageGroup());
response.setUserId(request.getUserId());
response.setTimeStamp(AbstractMessage.getCurrentTimeStamp());
return response;
}
}
Ho bisogno della sottoclasse generica di essere una sottoclasse di questa classe. In altre parole, il generico deve essere una sottoclasse di AbstractMessageHandler. Questo comunque mi dà problemi di compilazione. Qualcuno può farmi sapere cosa sto facendo di sbagliato?
Grazie
Inviare l'errore del compilatore. E, si spera, si voglia solo richiedere una sottoclasse generica, 'T', che sia quella dell'interfaccia' che 'AbstractMessageHandler' implementi teoricamente, che immagino sia chiamata' MessageHandler'. In relazione a ciò, il parametro "setResponseValues" dovrebbe molto probabilmente prendere come parametro "Message" e non "AbstractMessage". Questi sono requisiti che limitano inutilmente, a meno che non ci sia semplicemente 'interfaccia' che implementano. – pickypg
Senza contesto, immagino che AbstractMessageHandler nel vincolo del tipo stesso richieda un argomento di tipo. Sei sicuro che questo sia il miglior design per il tuo problema? Oppure intendevi "AbstractMessageHandler?" –