Archief - [Java] Generieke klasse vraagje

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

CoNiO

Legacy Member
Ik zou graag 2 generieke interfaces maken met dezelfde naam maar de ene interface ontvangt maar 1 unknown type T, en de andere interface ontvangt 2 unknown types T en U.

Zoiets dus :
public interface IFormDetailPairView<T, U>
public interface IFormDetailPairView<T>

Maar ik slaag er niet in, dit te realiseren in java. Iemand een idee als dat mogelijk is ?

NeverwinterX

Legacy Member
CoNiO zei:
Ik zou graag 2 generieke interfaces maken met dezelfde naam maar de ene interface ontvangt maar 1 unknown type T, en de andere interface ontvangt 2 unknown types T en U.

Zoiets dus :
public interface IFormDetailPairView<T, U>
public interface IFormDetailPairView<T>

Het probleem zit hem in het feit dat je per se wilt dat die twee interfaces dezelfde naam hebben? Dat gaat nu eenmaal niet. Denk eens goed na wat je wilt: ofwel is je design niet goed (dit is het meest waarschijnlijke) ofwel wil je gewoon 2 aparte interfaces met verschillende namen.
Je kan ook gewoon die met 2 types gebruiken en dan voor het tweede type gewoon om het even wat invullen als je maar 1 type nodig hebt, maar dat is lelijk en wijst eerder op verkeerd gebruik van generics en een fout in uw design.

CoNiO

Legacy Member
Ik heb het voorlopg op deze manier opgelost, maar ik ben er niet tevreden van. Ik vind mijn design niet goed.

public interface IFormDetailPairView<T, U> extends IFormView
{
void setDetail(T Source);
void setListData(List<U> Source);
U getSelectedListData();
}

public interface IFormDetailSingleView<T> extends IFormView
{
void setDetail(T Source);
void setListData(List<T> Source);
T getSelectedListData();
}

public interface IFormView
{
void addButtonAddListener(ActionListener mal);
void addButtonCloseListener(ActionListener mal);
void addButtonEditListener(ActionListener mal);
void clear();
void clearError();
void close();
ModifyAction getAction();
int getId();
void setError(List<Error> Source);
void setActionSucces(ModifyAction action);
}

NeverwinterX

Legacy Member
Als je wilt dat we een ander design voorstellen, dan zul je toch moeten zeggen wat je precies wilt bereiken.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan